From owner-svn-src-stable-10@FreeBSD.ORG Sun Dec 29 02:57:13 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 05072A00; Sun, 29 Dec 2013 02:57:13 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E03391064; Sun, 29 Dec 2013 02:57:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBT2vCqv009857; Sun, 29 Dec 2013 02:57:12 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBT2vAHA009846; Sun, 29 Dec 2013 02:57:10 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201312290257.rBT2vAHA009846@svn.freebsd.org> From: Julio Merino Date: Sun, 29 Dec 2013 02:57:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260029 - in stable/10: contrib/atf contrib/atf/admin contrib/atf/atf-c contrib/atf/atf-c++ contrib/atf/atf-c++/detail contrib/atf/atf-c/detail contrib/atf/atf-config contrib/atf/atf-re... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Dec 2013 02:57:13 -0000 Author: jmmv Date: Sun Dec 29 02:57:10 2013 New Revision: 260029 URL: http://svnweb.freebsd.org/changeset/base/260029 Log: Update atf to 0.18 and remove the code of the deprecated tools. This is a MFC into stable/10 of: - r258286 Update notes for imports of atf. - r258289 MFV: Import atf-0.18. - r258290 Drop all ATF tools code. This is "make tinderbox" clean as run on ref10-amd64 with the default WITHOUT_TESTS option. A "make buildworld" with WITH_TESTS set now works as well. Added: stable/10/contrib/atf/atf-c++/detail/auto_array.hpp - copied unchanged from r258289, head/contrib/atf/atf-c++/detail/auto_array.hpp stable/10/contrib/atf/atf-c++/detail/auto_array_test.cpp - copied unchanged from r258289, head/contrib/atf/atf-c++/detail/auto_array_test.cpp stable/10/contrib/atf/atf-c++/noncopyable.hpp - copied unchanged from r258289, head/contrib/atf/atf-c++/noncopyable.hpp stable/10/contrib/atf/atf-c++/utils.cpp - copied unchanged from r258289, head/contrib/atf/atf-c++/utils.cpp Deleted: stable/10/contrib/atf/Atffile stable/10/contrib/atf/Makefile.am stable/10/contrib/atf/Makefile.in stable/10/contrib/atf/admin/ stable/10/contrib/atf/atf-c++/Atffile stable/10/contrib/atf/atf-c++/Makefile.am.inc stable/10/contrib/atf/atf-c++/detail/Atffile stable/10/contrib/atf/atf-c++/detail/Makefile.am.inc stable/10/contrib/atf/atf-c/Atffile stable/10/contrib/atf/atf-c/Makefile.am.inc stable/10/contrib/atf/atf-c/detail/Atffile stable/10/contrib/atf/atf-c/detail/Makefile.am.inc stable/10/contrib/atf/atf-c/detail/test_helpers_test.c stable/10/contrib/atf/atf-config/ stable/10/contrib/atf/atf-report/ stable/10/contrib/atf/atf-run/ stable/10/contrib/atf/atf-sh/Atffile stable/10/contrib/atf/atf-sh/Makefile.am.inc stable/10/contrib/atf/atf-version/ stable/10/contrib/atf/bconfig.h.in stable/10/contrib/atf/configure stable/10/contrib/atf/configure.ac stable/10/contrib/atf/doc/Makefile.am.inc stable/10/contrib/atf/doc/atf-formats.5 stable/10/contrib/atf/doc/atf.7.in stable/10/contrib/atf/test-programs/Atffile stable/10/contrib/atf/test-programs/Makefile.am.inc stable/10/contrib/atf/test-programs/fork_test.sh Modified: stable/10/contrib/atf/FREEBSD-Xlist stable/10/contrib/atf/FREEBSD-upgrade stable/10/contrib/atf/NEWS stable/10/contrib/atf/atf-c++.hpp stable/10/contrib/atf/atf-c++/atf-c++-api.3 stable/10/contrib/atf/atf-c++/check.hpp stable/10/contrib/atf/atf-c++/check_test.cpp stable/10/contrib/atf/atf-c++/detail/Kyuafile stable/10/contrib/atf/atf-c++/detail/parser.hpp stable/10/contrib/atf/atf-c++/detail/process.cpp stable/10/contrib/atf/atf-c++/detail/process.hpp stable/10/contrib/atf/atf-c++/detail/test_helpers.cpp stable/10/contrib/atf/atf-c++/detail/test_helpers.hpp stable/10/contrib/atf/atf-c++/macros_test.cpp stable/10/contrib/atf/atf-c++/pkg_config_test.sh stable/10/contrib/atf/atf-c++/tests.cpp stable/10/contrib/atf/atf-c++/tests.hpp stable/10/contrib/atf/atf-c++/utils.hpp stable/10/contrib/atf/atf-c++/utils_test.cpp stable/10/contrib/atf/atf-c.h stable/10/contrib/atf/atf-c/atf-c-api.3 stable/10/contrib/atf/atf-c/check_test.c stable/10/contrib/atf/atf-c/detail/Kyuafile stable/10/contrib/atf/atf-c/detail/process_test.c stable/10/contrib/atf/atf-c/detail/sanity_test.c stable/10/contrib/atf/atf-c/detail/test_helpers.c stable/10/contrib/atf/atf-c/detail/test_helpers.h stable/10/contrib/atf/atf-c/macros.h stable/10/contrib/atf/atf-c/macros_test.c stable/10/contrib/atf/atf-c/pkg_config_test.sh stable/10/contrib/atf/atf-c/utils.c stable/10/contrib/atf/atf-c/utils.h stable/10/contrib/atf/atf-c/utils_test.c stable/10/contrib/atf/atf-sh/atf-check.cpp stable/10/contrib/atf/atf-sh/atf-check_test.sh stable/10/contrib/atf/atf-sh/atf-sh-api.3 stable/10/contrib/atf/atf-sh/atf-sh.1 stable/10/contrib/atf/atf-sh/atf_check_test.sh stable/10/contrib/atf/atf-sh/misc_helpers.sh stable/10/contrib/atf/bconfig.h stable/10/contrib/atf/test-programs/Kyuafile stable/10/contrib/atf/test-programs/c_helpers.c stable/10/contrib/atf/test-programs/cpp_helpers.cpp stable/10/contrib/atf/test-programs/sh_helpers.sh stable/10/lib/atf/libatf-c++/Makefile stable/10/lib/atf/libatf-c/tests/Makefile stable/10/lib/atf/tests/test-programs/Makefile stable/10/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/atf/FREEBSD-Xlist ============================================================================== --- stable/10/contrib/atf/FREEBSD-Xlist Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/FREEBSD-Xlist Sun Dec 29 02:57:10 2013 (r260029) @@ -1,8 +1,21 @@ +*/*/Atffile +*/*/Makefile* +*/Atffile +*/Makefile* +Atffile +INSTALL +Makefile* +aclocal.m4 +admin/ +atf-*/atf-*.m4 +atf-*/atf-*.pc.in +atf-config/ +atf-report/ +atf-run/ +atf-version/ +bconfig.h.in bootstrap/ -config.log -config.status -libtool -Makefile -stamp-h1 -*/*/.deps/ -*/.deps/ +configure* +doc/atf-formats.5 +doc/atf.7.in +m4/ Modified: stable/10/contrib/atf/FREEBSD-upgrade ============================================================================== --- stable/10/contrib/atf/FREEBSD-upgrade Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/FREEBSD-upgrade Sun Dec 29 02:57:10 2013 (r260029) @@ -1,28 +1,48 @@ $FreeBSD$ -atf +This document contains a collection of notes specific to the import +of atf into head. These notes are built on the instructions in +the FreeBSD Subversion Primer that detail how to deal with vendor +branches and you are supposed to follow those: -The source code is hosted on GoogleCode as a subcomponent of the Kyua project: + http://www.freebsd.org/doc/en/articles/committers-guide/subversion-primer.html - http://code.google.com/p/kyua/downloads/list - -For the contrib directory, the sources were initially prepared like so: - - ./configure --prefix=/ --exec-prefix=/usr --datarootdir=/usr/share +The ATF source code is hosted on Google Code as a subcomponent of the +Kyua project: -For the contrib directory, files and directories were pruned by: - -sh -c 'for F in `cat FREEBSD-Xlist`; do rm -rf ./$F ; done' + http://code.google.com/p/kyua/downloads/list -You may check if there are any new files that we don't need. +and is imported into the atf vendor branch (see base/vendor/atf/). -The instructions for importing new release and merging to HEAD can be found -at FreeBSD wiki: +To merge the vendor branch into head do something like this: - http://wiki.freebsd.org/SubversionPrimer/VendorImports + cd .../base/head/contrib/atf + svn merge --accept=postpone \ + svn+ssh://svn.freebsd.org/base/vendor/atf/dist . + svn remove --force $(cat FREEBSD-Xlist) + +and resolve any conflicts that may arise at this point. + +Once this is done, you must regenerate bconfig.h. The recommended way +of doing so is by using the release files already imported into the +vendor branch (which is a good justification for importing the verbatim +sources in the first place so that this step is reproducible). You can +use a set of commands similar to the following: + + mkdir /tmp/atf + cd /tmp/atf + .../vendor/atf/dist/configure \ + --prefix=/ \ + --exec-prefix=/usr \ + --datarootdir=/usr/share + cp bconfig.h .../base/head/contrib/atf/ + +Please do NOT run './configure' straight from the 'dist' directory of +the vendor branch as you easily risk committing build products into the +tree. -To make local changes to atf, simply patch and commit to the trunk -branch (aka HEAD). Never make local changes on the vendor branch. +Lastly, with the list of old and new files in this import, make sure +to udpate the reachover Makefiles accordingly. -gcooper@FreeBSD.org -5-August-2012 +Test the build (keeping in mind the WITH_TESTS/WITHOUT_TESTS knobs) and, +if all looks good, you are ready to commit all the changes in one go. Modified: stable/10/contrib/atf/NEWS ============================================================================== --- stable/10/contrib/atf/NEWS Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/NEWS Sun Dec 29 02:57:10 2013 (r260029) @@ -2,6 +2,58 @@ Major changes between releases =========================================================================== +Changes in version 0.18 +*********************** + +Experimental version released on November 16th, 2013. + +* Issue 45: Added require.memory support in atf-run for FreeBSD. + +* Fixed an issue with the handling of cin with libc++. + +* Issue 64: Fixed various mandoc formatting warnings. + +* NetBSD PR bin/48284: Made atf-check flush its progress message to + stdout so that an interrupted test case always shows the last message + being executed. + +* NetBSD PR bin/48285: Fixed atf_check examples in atf-sh-api(3). + + +Changes in version 0.17 +*********************** + +Experimental version released on February 14th, 2013. + +* Added the atf_utils_cat_file, atf_utils_compare_file, + atf_utils_copy_file, atf_utils_create_file, atf_utils_file_exists, + atf_utils_fork, atf_utils_grep_file, atf_utils_grep_string, + atf_utils_readline, atf_utils_redirect and atf_utils_wait utility + functions to atf-c-api. Documented the already-public + atf_utils_free_charpp function. + +* Added the cat_file, compare_file, copy_file, create_file, file_exists, + fork, grep_collection, grep_file, grep_string, redirect and wait + functions to the atf::utils namespace of atf-c++-api. These are + wrappers around the same functions added to the atf-c-api library. + +* Added the ATF_CHECK_MATCH, ATF_CHECK_MATCH_MSG, ATF_REQUIRE_MATCH and + ATF_REQUIRE_MATCH_MSG macros to atf-c to simplify the validation of a + string against a regular expression. + +* Miscellaneous fixes for manpage typos and compilation problems with + clang. + +* Added caching of the results of those configure tests that rely on + executing a test program. This should help crossbuild systems by + providing a mechanism to pre-specify what the results should be. + +* PR bin/45690: Make atf-report convert any non-printable characters to + a plain-text representation (matching their corresponding hexadecimal + entities) in XML output files. This is to prevent the output of test + cases from breaking xsltproc later. + + Changes in version 0.16 *********************** Modified: stable/10/contrib/atf/atf-c++.hpp ============================================================================== --- stable/10/contrib/atf/atf-c++.hpp Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/atf-c++.hpp Sun Dec 29 02:57:10 2013 (r260029) @@ -31,5 +31,6 @@ #define _ATF_CXX_HPP_ #include +#include #endif // !defined(_ATF_CXX_HPP_) Modified: stable/10/contrib/atf/atf-c++/atf-c++-api.3 ============================================================================== --- stable/10/contrib/atf/atf-c++/atf-c++-api.3 Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/atf-c++/atf-c++-api.3 Sun Dec 29 02:57:10 2013 (r260029) @@ -26,10 +26,11 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 21, 2012 +.Dd November 15, 2013 .Dt ATF-C++-API 3 .Os .Sh NAME +.Nm atf-c++-api , .Nm ATF_ADD_TEST_CASE , .Nm ATF_CHECK_ERRNO , .Nm ATF_FAIL , @@ -52,6 +53,17 @@ .Nm ATF_TEST_CASE_USE , .Nm ATF_TEST_CASE_WITH_CLEANUP , .Nm ATF_TEST_CASE_WITHOUT_HEAD , +.Nm atf::utils::cat_file , +.Nm atf::utils::compare_file , +.Nm atf::utils::copy_file , +.Nm atf::utils::create_file , +.Nm atf::utils::file_exists , +.Nm atf::utils::fork , +.Nm atf::utils::grep_collection , +.Nm atf::utils::grep_file , +.Nm atf::utils::grep_string , +.Nm atf::utils::redirect , +.Nm atf::utils::wait .Nd C++ API to write ATF-based test programs .Sh SYNOPSIS .In atf-c++.hpp @@ -77,18 +89,64 @@ .Fn ATF_TEST_CASE_USE "name" .Fn ATF_TEST_CASE_WITH_CLEANUP "name" .Fn ATF_TEST_CASE_WITHOUT_HEAD "name" +.Ft void +.Fo atf::utils::cat_file +.Fa "const std::string& path" +.Fa "const std::string& prefix" +.Fc +.Ft bool +.Fo atf::utils::compare_file +.Fa "const std::string& path" +.Fa "const std::string& contents" +.Fc +.Ft void +.Fo atf::utils::copy_file +.Fa "const std::string& source" +.Fa "const std::string& destination" +.Fc +.Ft void +.Fo atf::utils::create_file +.Fa "const std::string& path" +.Fa "const std::string& contents" +.Fc +.Ft void +.Fo atf::utils::file_exists +.Fa "const std::string& path" +.Fc +.Ft pid_t +.Fo atf::utils::fork +.Fa "void" +.Fc +.Ft bool +.Fo atf::utils::grep_collection +.Fa "const std::string& regexp" +.Fa "const Collection& collection" +.Fc +.Ft bool +.Fo atf::utils::grep_file +.Fa "const std::string& regexp" +.Fa "const std::string& path" +.Fc +.Ft bool +.Fo atf::utils::grep_string +.Fa "const std::string& regexp" +.Fa "const std::string& path" +.Fc +.Ft void +.Fo atf::utils::redirect +.Fa "const int fd" +.Fa "const std::string& path" +.Fc +.Ft void +.Fo atf::utils::wait +.Fa "const pid_t pid" +.Fa "const int expected_exit_status" +.Fa "const std::string& expected_stdout" +.Fa "const std::string& expected_stderr" +.Fc .Sh DESCRIPTION -ATF provides a mostly-macro-based programming interface to implement test -programs in C or C++. -This interface is backed by a C++ implementation, but this fact is -hidden from the developer as much as possible through the use of -macros to simplify programming. -However, the use of C++ is not hidden everywhere and while you can -implement test cases without knowing anything at all about the object model -underneath the provided calls, you might need some minimum notions of the -language in very specific circumstances. -.Pp -C++-based test programs always follow this template: +ATF provides a C++ programming interface to implement test programs. +C++-based test programs follow this template: .Bd -literal -offset indent extern "C" { .Ns ... C-specific includes go here ... @@ -205,7 +263,7 @@ The first parameter of this macro matche former call. .Ss Header definitions The test case's header can define the meta-data by using the -.Fn set +.Fn set_md_var method, which takes two parameters: the first one specifies the meta-data variable to be set and the second one specifies its value. Both of them are strings. @@ -348,7 +406,7 @@ in the collection. .Fn ATF_REQUIRE_THROW takes the name of an exception and a statement and raises a failure if the statement does not throw the specified exception. -.Fn ATF_REQUIRE_THROW_EQ +.Fn ATF_REQUIRE_THROW_RE takes the name of an exception, a regular expresion and a statement and raises a failure if the statement does not throw the specified exception and if the message of the exception does not match the regular expression. @@ -362,6 +420,163 @@ variable and, second, a boolean expressi means that a call failed and .Va errno has to be checked against the first value. +.Ss Utility functions +The following functions are provided as part of the +.Nm +API to simplify the creation of a variety of tests. +In particular, these are useful to write tests for command-line interfaces. +.Pp +.Ft void +.Fo atf::utils::cat_file +.Fa "const std::string& path" +.Fa "const std::string& prefix" +.Fc +.Bd -ragged -offset indent +Prints the contents of +.Fa path +to the standard output, prefixing every line with the string in +.Fa prefix . +.Ed +.Pp +.Ft bool +.Fo atf::utils::compare_file +.Fa "const std::string& path" +.Fa "const std::string& contents" +.Fc +.Bd -ragged -offset indent +Returns true if the given +.Fa path +matches exactly the expected inlined +.Fa contents . +.Ed +.Pp +.Ft void +.Fo atf::utils::copy_file +.Fa "const std::string& source" +.Fa "const std::string& destination" +.Fc +.Bd -ragged -offset indent +Copies the file +.Fa source +to +.Fa destination . +The permissions of the file are preserved during the code. +.Ed +.Pp +.Ft void +.Fo atf::utils::create_file +.Fa "const std::string& path" +.Fa "const std::string& contents" +.Fc +.Bd -ragged -offset indent +Creates +.Fa file +with the text given in +.Fa contents . +.Ed +.Pp +.Ft void +.Fo atf::utils::file_exists +.Fa "const std::string& path" +.Fc +.Bd -ragged -offset indent +Checks if +.Fa path +exists. +.Ed +.Pp +.Ft pid_t +.Fo atf::utils::fork +.Fa "void" +.Fc +.Bd -ragged -offset indent +Forks a process and redirects the standard output and standard error of the +child to files for later validation with +.Fn atf::utils::wait . +Fails the test case if the fork fails, so this does not return an error. +.Ed +.Pp +.Ft bool +.Fo atf::utils::grep_collection +.Fa "const std::string& regexp" +.Fa "const Collection& collection" +.Fc +.Bd -ragged -offset indent +Searches for the regular expression +.Fa regexp +in any of the strings contained in the +.Fa collection . +This is a template that accepts any one-dimensional container of strings. +.Ed +.Pp +.Ft bool +.Fo atf::utils::grep_file +.Fa "const std::string& regexp" +.Fa "const std::string& path" +.Fc +.Bd -ragged -offset indent +Searches for the regular expression +.Fa regexp +in the file +.Fa path . +The variable arguments are used to construct the regular expression. +.Ed +.Pp +.Ft bool +.Fo atf::utils::grep_string +.Fa "const std::string& regexp" +.Fa "const std::string& str" +.Fc +.Bd -ragged -offset indent +Searches for the regular expression +.Fa regexp +in the string +.Fa str . +.Ed +.Ft void +.Fo atf::utils::redirect +.Fa "const int fd" +.Fa "const std::string& path" +.Fc +.Bd -ragged -offset indent +Redirects the given file descriptor +.Fa fd +to the file +.Fa path . +This function exits the process in case of an error and does not properly mark +the test case as failed. +As a result, it should only be used in subprocesses of the test case; specially +those spawned by +.Fn atf::utils::fork . +.Ed +.Pp +.Ft void +.Fo atf::utils::wait +.Fa "const pid_t pid" +.Fa "const int expected_exit_status" +.Fa "const std::string& expected_stdout" +.Fa "const std::string& expected_stderr" +.Fc +.Bd -ragged -offset indent +Waits and validates the result of a subprocess spawned with +.Fn atf::utils::wait . +The validation involves checking that the subprocess exited cleanly and returned +the code specified in +.Fa expected_exit_status +and that its standard output and standard error match the strings given in +.Fa expected_stdout +and +.Fa expected_stderr . +.Pp +If any of the +.Fa expected_stdout +or +.Fa expected_stderr +strings are prefixed with +.Sq save: , +then they specify the name of the file into which to store the stdout or stderr +of the subprocess, and no comparison is performed. +.Ed .Sh EXAMPLES The following shows a complete test program with a single test case that validates the addition operator: @@ -371,7 +586,7 @@ validates the addition operator: ATF_TEST_CASE(addition); ATF_TEST_CASE_HEAD(addition) { - set("descr", "Sample tests for the addition operator"); + set_md_var("descr", "Sample tests for the addition operator"); } ATF_TEST_CASE_BODY(addition) { @@ -387,7 +602,7 @@ ATF_TEST_CASE_BODY(addition) ATF_TEST_CASE(open_failure); ATF_TEST_CASE_HEAD(open_failure) { - set("descr", "Sample tests for the open function"); + set_md_var("descr", "Sample tests for the open function"); } ATF_TEST_CASE_BODY(open_failure) { @@ -397,7 +612,7 @@ ATF_TEST_CASE_BODY(open_failure) ATF_TEST_CASE(known_bug); ATF_TEST_CASE_HEAD(known_bug) { - set("descr", "Reproduces a known bug"); + set_md_var("descr", "Reproduces a known bug"); } ATF_TEST_CASE_BODY(known_bug) { Modified: stable/10/contrib/atf/atf-c++/check.hpp ============================================================================== --- stable/10/contrib/atf/atf-c++/check.hpp Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/atf-c++/check.hpp Sun Dec 29 02:57:10 2013 (r260029) @@ -39,7 +39,7 @@ extern "C" { #include #include -#include +#include namespace atf { @@ -60,7 +60,7 @@ namespace check { //! of executing arbitrary command and manages files containing //! its output. //! -class check_result : utils::noncopyable { +class check_result : noncopyable { //! //! \brief Internal representation of a result. //! Modified: stable/10/contrib/atf/atf-c++/check_test.cpp ============================================================================== --- stable/10/contrib/atf/atf-c++/check_test.cpp Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/atf-c++/check_test.cpp Sun Dec 29 02:57:10 2013 (r260029) @@ -193,15 +193,15 @@ ATF_TEST_CASE_BODY(build_c_o) { ATF_TEST_CASE_USE(h_build_c_o_ok); run_h_tc< ATF_TEST_CASE_NAME(h_build_c_o_ok) >(); - ATF_REQUIRE(grep_file("stdout", "-o test.o")); - ATF_REQUIRE(grep_file("stdout", "-c test.c")); + ATF_REQUIRE(atf::utils::grep_file("-o test.o", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("-c test.c", "stdout")); ATF_TEST_CASE_USE(h_build_c_o_fail); run_h_tc< ATF_TEST_CASE_NAME(h_build_c_o_fail) >(); - ATF_REQUIRE(grep_file("stdout", "-o test.o")); - ATF_REQUIRE(grep_file("stdout", "-c test.c")); - ATF_REQUIRE(grep_file("stderr", "test.c")); - ATF_REQUIRE(grep_file("stderr", "UNDEFINED_SYMBOL")); + ATF_REQUIRE(atf::utils::grep_file("-o test.o", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("-c test.c", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("test.c", "stderr")); + ATF_REQUIRE(atf::utils::grep_file("UNDEFINED_SYMBOL", "stderr")); } ATF_TEST_CASE(build_cpp); @@ -213,16 +213,16 @@ ATF_TEST_CASE_BODY(build_cpp) { ATF_TEST_CASE_USE(h_build_cpp_ok); run_h_tc< ATF_TEST_CASE_NAME(h_build_cpp_ok) >(); - ATF_REQUIRE(grep_file("stdout", "-o.*test.p")); - ATF_REQUIRE(grep_file("stdout", "test.c")); - ATF_REQUIRE(grep_file("test.p", "foo bar")); + ATF_REQUIRE(atf::utils::grep_file("-o.*test.p", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("test.c", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("foo bar", "test.p")); ATF_TEST_CASE_USE(h_build_cpp_fail); run_h_tc< ATF_TEST_CASE_NAME(h_build_cpp_fail) >(); - ATF_REQUIRE(grep_file("stdout", "-o test.p")); - ATF_REQUIRE(grep_file("stdout", "test.c")); - ATF_REQUIRE(grep_file("stderr", "test.c")); - ATF_REQUIRE(grep_file("stderr", "non-existent.h")); + ATF_REQUIRE(atf::utils::grep_file("-o test.p", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("test.c", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("test.c", "stderr")); + ATF_REQUIRE(atf::utils::grep_file("non-existent.h", "stderr")); } ATF_TEST_CASE(build_cxx_o); @@ -234,15 +234,15 @@ ATF_TEST_CASE_BODY(build_cxx_o) { ATF_TEST_CASE_USE(h_build_cxx_o_ok); run_h_tc< ATF_TEST_CASE_NAME(h_build_cxx_o_ok) >(); - ATF_REQUIRE(grep_file("stdout", "-o test.o")); - ATF_REQUIRE(grep_file("stdout", "-c test.cpp")); + ATF_REQUIRE(atf::utils::grep_file("-o test.o", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("-c test.cpp", "stdout")); ATF_TEST_CASE_USE(h_build_cxx_o_fail); run_h_tc< ATF_TEST_CASE_NAME(h_build_cxx_o_fail) >(); - ATF_REQUIRE(grep_file("stdout", "-o test.o")); - ATF_REQUIRE(grep_file("stdout", "-c test.cpp")); - ATF_REQUIRE(grep_file("stderr", "test.cpp")); - ATF_REQUIRE(grep_file("stderr", "UNDEFINED_SYMBOL")); + ATF_REQUIRE(atf::utils::grep_file("-o test.o", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("-c test.cpp", "stdout")); + ATF_REQUIRE(atf::utils::grep_file("test.cpp", "stderr")); + ATF_REQUIRE(atf::utils::grep_file("UNDEFINED_SYMBOL", "stderr")); } ATF_TEST_CASE(exec_cleanup); Modified: stable/10/contrib/atf/atf-c++/detail/Kyuafile ============================================================================== --- stable/10/contrib/atf/atf-c++/detail/Kyuafile Sun Dec 29 02:31:40 2013 (r260028) +++ stable/10/contrib/atf/atf-c++/detail/Kyuafile Sun Dec 29 02:57:10 2013 (r260029) @@ -3,6 +3,7 @@ syntax("kyuafile", 1) test_suite("atf") atf_test_program{name="application_test"} +atf_test_program{name="auto_array_test"} atf_test_program{name="env_test"} atf_test_program{name="exceptions_test"} atf_test_program{name="expand_test"} Copied: stable/10/contrib/atf/atf-c++/detail/auto_array.hpp (from r258289, head/contrib/atf/atf-c++/detail/auto_array.hpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/contrib/atf/atf-c++/detail/auto_array.hpp Sun Dec 29 02:57:10 2013 (r260029, copy of r258289, head/contrib/atf/atf-c++/detail/auto_array.hpp) @@ -0,0 +1,179 @@ +// +// Automated Testing Framework (atf) +// +// Copyright (c) 2007 The NetBSD Foundation, Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +// CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + +#if !defined(_ATF_CXX_AUTO_ARRAY_HPP_) +#define _ATF_CXX_AUTO_ARRAY_HPP_ + +#include + +namespace atf { + +// ------------------------------------------------------------------------ +// The "auto_array" class. +// ------------------------------------------------------------------------ + +template< class T > +struct auto_array_ref { + T* m_ptr; + + explicit auto_array_ref(T*); +}; + +template< class T > +auto_array_ref< T >::auto_array_ref(T* ptr) : + m_ptr(ptr) +{ +} + +template< class T > +class auto_array { + T* m_ptr; + +public: + auto_array(T* = NULL) throw(); + auto_array(auto_array< T >&) throw(); + auto_array(auto_array_ref< T >) throw(); + ~auto_array(void) throw(); + + T* get(void) throw(); + const T* get(void) const throw(); + T* release(void) throw(); + void reset(T* = NULL) throw(); + + auto_array< T >& operator=(auto_array< T >&) throw(); + auto_array< T >& operator=(auto_array_ref< T >) throw(); + + T& operator[](int) throw(); + operator auto_array_ref< T >(void) throw(); +}; + +template< class T > +auto_array< T >::auto_array(T* ptr) + throw() : + m_ptr(ptr) +{ +} + +template< class T > +auto_array< T >::auto_array(auto_array< T >& ptr) + throw() : + m_ptr(ptr.release()) +{ +} + +template< class T > +auto_array< T >::auto_array(auto_array_ref< T > ref) + throw() : + m_ptr(ref.m_ptr) +{ +} + +template< class T > +auto_array< T >::~auto_array(void) + throw() +{ + if (m_ptr != NULL) + delete [] m_ptr; +} + +template< class T > +T* +auto_array< T >::get(void) + throw() +{ + return m_ptr; +} + +template< class T > +const T* +auto_array< T >::get(void) + const throw() +{ + return m_ptr; +} + +template< class T > +T* +auto_array< T >::release(void) + throw() +{ + T* ptr = m_ptr; + m_ptr = NULL; + return ptr; +} + +template< class T > +void +auto_array< T >::reset(T* ptr) + throw() +{ + if (m_ptr != NULL) + delete [] m_ptr; + m_ptr = ptr; +} + +template< class T > +auto_array< T >& +auto_array< T >::operator=(auto_array< T >& ptr) + throw() +{ + reset(ptr.release()); + return *this; +} + +template< class T > +auto_array< T >& +auto_array< T >::operator=(auto_array_ref< T > ref) + throw() +{ + if (m_ptr != ref.m_ptr) { + delete [] m_ptr; + m_ptr = ref.m_ptr; + } + return *this; +} + +template< class T > +T& +auto_array< T >::operator[](int pos) + throw() +{ + return m_ptr[pos]; +} + +template< class T > +auto_array< T >::operator auto_array_ref< T >(void) + throw() +{ + return auto_array_ref< T >(release()); +} + +} // namespace atf + +#endif // !defined(_ATF_CXX_AUTO_ARRAY_HPP_) Copied: stable/10/contrib/atf/atf-c++/detail/auto_array_test.cpp (from r258289, head/contrib/atf/atf-c++/detail/auto_array_test.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/contrib/atf/atf-c++/detail/auto_array_test.cpp Sun Dec 29 02:57:10 2013 (r260029, copy of r258289, head/contrib/atf/atf-c++/detail/auto_array_test.cpp) @@ -0,0 +1,304 @@ +// +// Automated Testing Framework (atf) +// +// Copyright (c) 2007 The NetBSD Foundation, Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +// CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + +extern "C" { +#include +} + +#include + +#include "atf-c/defs.h" + +#include "../macros.hpp" + +#include "auto_array.hpp" + +// ------------------------------------------------------------------------ +// Tests for the "auto_array" class. +// ------------------------------------------------------------------------ + +class test_array { +public: + int m_value; + + static ssize_t m_nblocks; + + static + atf::auto_array< test_array > + do_copy(atf::auto_array< test_array >& ta) + { + return atf::auto_array< test_array >(ta); + } + + void* operator new(size_t size ATF_DEFS_ATTRIBUTE_UNUSED) + { + ATF_FAIL("New called but should have been new[]"); + return new int(5); + } + + void* operator new[](size_t size) + { + m_nblocks++; + void* mem = ::operator new(size); + std::cout << "Allocated 'test_array' object " << mem << "\n"; + return mem; + } + + void operator delete(void* mem ATF_DEFS_ATTRIBUTE_UNUSED) + { + ATF_FAIL("Delete called but should have been delete[]"); + } + + void operator delete[](void* mem) + { + std::cout << "Releasing 'test_array' object " << mem << "\n"; + if (m_nblocks == 0) + ATF_FAIL("Unbalanced delete[]"); + m_nblocks--; + ::operator delete(mem); + } +}; + +ssize_t test_array::m_nblocks = 0; + +ATF_TEST_CASE(auto_array_scope); +ATF_TEST_CASE_HEAD(auto_array_scope) +{ + set_md_var("descr", "Tests the automatic scope handling in the " + "auto_array smart pointer class"); +} +ATF_TEST_CASE_BODY(auto_array_scope) +{ + using atf::auto_array; + + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); + { + auto_array< test_array > t(new test_array[10]); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); +} + +ATF_TEST_CASE(auto_array_copy); +ATF_TEST_CASE_HEAD(auto_array_copy) +{ + set_md_var("descr", "Tests the auto_array smart pointer class' copy " + "constructor"); +} +ATF_TEST_CASE_BODY(auto_array_copy) +{ + using atf::auto_array; + + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); + { + auto_array< test_array > t1(new test_array[10]); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + + { + auto_array< test_array > t2(t1); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); +} + +ATF_TEST_CASE(auto_array_copy_ref); +ATF_TEST_CASE_HEAD(auto_array_copy_ref) +{ + set_md_var("descr", "Tests the auto_array smart pointer class' copy " + "constructor through the auxiliary auto_array_ref object"); +} +ATF_TEST_CASE_BODY(auto_array_copy_ref) +{ + using atf::auto_array; + + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); + { + auto_array< test_array > t1(new test_array[10]); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + + { + auto_array< test_array > t2 = test_array::do_copy(t1); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); +} + +ATF_TEST_CASE(auto_array_get); +ATF_TEST_CASE_HEAD(auto_array_get) +{ + set_md_var("descr", "Tests the auto_array smart pointer class' get " + "method"); +} +ATF_TEST_CASE_BODY(auto_array_get) +{ + using atf::auto_array; + + test_array* ta = new test_array[10]; + auto_array< test_array > t(ta); + ATF_REQUIRE_EQ(t.get(), ta); +} + +ATF_TEST_CASE(auto_array_release); +ATF_TEST_CASE_HEAD(auto_array_release) +{ + set_md_var("descr", "Tests the auto_array smart pointer class' release " + "method"); +} +ATF_TEST_CASE_BODY(auto_array_release) +{ + using atf::auto_array; + + test_array* ta1 = new test_array[10]; + { + auto_array< test_array > t(ta1); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + test_array* ta2 = t.release(); + ATF_REQUIRE_EQ(ta2, ta1); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + delete [] ta1; +} + +ATF_TEST_CASE(auto_array_reset); +ATF_TEST_CASE_HEAD(auto_array_reset) +{ + set_md_var("descr", "Tests the auto_array smart pointer class' reset " + "method"); +} +ATF_TEST_CASE_BODY(auto_array_reset) +{ + using atf::auto_array; + + test_array* ta1 = new test_array[10]; + test_array* ta2 = new test_array[10]; + ATF_REQUIRE_EQ(test_array::m_nblocks, 2); + + { + auto_array< test_array > t(ta1); + ATF_REQUIRE_EQ(test_array::m_nblocks, 2); + t.reset(ta2); + ATF_REQUIRE_EQ(test_array::m_nblocks, 1); + t.reset(); + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); + } + ATF_REQUIRE_EQ(test_array::m_nblocks, 0); +} + +ATF_TEST_CASE(auto_array_assign); +ATF_TEST_CASE_HEAD(auto_array_assign) +{ + set_md_var("descr", "Tests the auto_array smart pointer class' " + "assignment operator"); +} +ATF_TEST_CASE_BODY(auto_array_assign) +{ + using atf::auto_array; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-10@FreeBSD.ORG Sun Dec 29 07:26:49 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 92C16E5A; Sun, 29 Dec 2013 07:26:49 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 63D161F93; Sun, 29 Dec 2013 07:26:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBT7QnaI003622; Sun, 29 Dec 2013 07:26:49 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBT7QnIc003621; Sun, 29 Dec 2013 07:26:49 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <201312290726.rBT7QnIc003621@svn.freebsd.org> From: Kirk McKusick Date: Sun, 29 Dec 2013 07:26:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260033 - stable/10/sys/ufs/ffs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Dec 2013 07:26:49 -0000 Author: mckusick Date: Sun Dec 29 07:26:48 2013 New Revision: 260033 URL: http://svnweb.freebsd.org/changeset/base/260033 Log: MFC of 258789: We needlessly panic when trying to flush MKDIR_PARENT dependencies. We had previously tried to flush all MKDIR_PARENT dependencies (and all the NEWBLOCK pagedeps) by calling ffs_update(). However this will only resolve these dependencies in direct blocks. So very large directories with MKDIR_PARENT dependencies in indirect blocks had not yet gotten flushed. As the directory is in the midst of doing a complete sync, we simply defer the checking of the MKDIR_PARENT dependencies until the indirect blocks have been sync'ed. Reported by: Shawn Wallbridge of imaginaryforces.com Tested by: John-Mark Gurney PR: 183424 Modified: stable/10/sys/ufs/ffs/ffs_softdep.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- stable/10/sys/ufs/ffs/ffs_softdep.c Sun Dec 29 04:54:52 2013 (r260032) +++ stable/10/sys/ufs/ffs/ffs_softdep.c Sun Dec 29 07:26:48 2013 (r260033) @@ -12616,7 +12616,9 @@ flush_pagedep_deps(pvp, mp, diraddhdp) int error = 0; struct buf *bp; ino_t inum; + struct diraddhd unfinished; + LIST_INIT(&unfinished); ump = VFSTOUFS(mp); restart: while ((dap = LIST_FIRST(diraddhdp)) != NULL) { @@ -12634,8 +12636,20 @@ restart: */ if (dap != LIST_FIRST(diraddhdp)) continue; - if (dap->da_state & MKDIR_PARENT) - panic("flush_pagedep_deps: MKDIR_PARENT"); + /* + * All MKDIR_PARENT dependencies and all the + * NEWBLOCK pagedeps that are contained in direct + * blocks were resolved by doing above ffs_update. + * Pagedeps contained in indirect blocks may + * require a complete sync'ing of the directory. + * We are in the midst of doing a complete sync, + * so if they are not resolved in this pass we + * defer them for now as they will be sync'ed by + * our caller shortly. + */ + LIST_REMOVE(dap, da_pdlist); + LIST_INSERT_HEAD(&unfinished, dap, da_pdlist); + continue; } /* * A newly allocated directory must have its "." and @@ -12744,6 +12758,10 @@ retry: } if (error) ACQUIRE_LOCK(&lk); + while ((dap = LIST_FIRST(&unfinished)) != NULL) { + LIST_REMOVE(dap, da_pdlist); + LIST_INSERT_HEAD(diraddhdp, dap, da_pdlist); + } return (error); } From owner-svn-src-stable-10@FreeBSD.ORG Sun Dec 29 09:17:44 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8E5D9FE0; Sun, 29 Dec 2013 09:17:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7968815B3; Sun, 29 Dec 2013 09:17:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBT9Hi3I044815; Sun, 29 Dec 2013 09:17:44 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBT9Hiei044814; Sun, 29 Dec 2013 09:17:44 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201312290917.rBT9Hiei044814@svn.freebsd.org> From: Sergey Kandaurov Date: Sun, 29 Dec 2013 09:17:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260035 - stable/10/lib/libc/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Dec 2013 09:17:44 -0000 Author: pluknet Date: Sun Dec 29 09:17:43 2013 New Revision: 260035 URL: http://svnweb.freebsd.org/changeset/base/260035 Log: MFC r259922: Fix an apparent typo. Modified: stable/10/lib/libc/sys/aio_mlock.2 Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/sys/aio_mlock.2 ============================================================================== --- stable/10/lib/libc/sys/aio_mlock.2 Sun Dec 29 07:29:45 2013 (r260034) +++ stable/10/lib/libc/sys/aio_mlock.2 Sun Dec 29 09:17:43 2013 (r260035) @@ -87,7 +87,7 @@ request has completed, are not allowed. .Rv -std aio_mlock .Sh ERRORS The -.Fn aio_read +.Fn aio_mlock system call will fail if: .Bl -tag -width Er .It Bq Er EAGAIN From owner-svn-src-stable-10@FreeBSD.ORG Sun Dec 29 12:30:07 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 90031B1E; Sun, 29 Dec 2013 12:30:07 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 79A8C1136; Sun, 29 Dec 2013 12:30:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBTCU7sg022185; Sun, 29 Dec 2013 12:30:07 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBTCU6jR022180; Sun, 29 Dec 2013 12:30:06 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201312291230.rBTCU6jR022180@svn.freebsd.org> From: Julio Merino Date: Sun, 29 Dec 2013 12:30:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260037 - in stable/10: etc/mtree share share/examples share/examples/tests share/examples/tests/tests/plain share/mk share/tests X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Dec 2013 12:30:07 -0000 Author: jmmv Date: Sun Dec 29 12:30:06 2013 New Revision: 260037 URL: http://svnweb.freebsd.org/changeset/base/260037 Log: Add sample test programs. This is a MFC of the following into stable/10: - r258299 Add some sample test programs. - r258552 Generate plain sh test programs from a source file. As usual, "make tinderbox" clean on ref10-amd64. Added: stable/10/share/examples/tests/ - copied from r258299, head/share/examples/tests/ stable/10/share/examples/tests/tests/plain/cp_test.sh - copied unchanged from r258552, head/share/examples/tests/tests/plain/cp_test.sh stable/10/share/tests/ - copied from r258299, head/share/tests/ Deleted: stable/10/share/examples/tests/tests/plain/cp_test Modified: stable/10/etc/mtree/BSD.tests.dist stable/10/share/Makefile stable/10/share/examples/Makefile stable/10/share/mk/plain.test.mk Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/mtree/BSD.tests.dist ============================================================================== --- stable/10/etc/mtree/BSD.tests.dist Sun Dec 29 11:19:09 2013 (r260036) +++ stable/10/etc/mtree/BSD.tests.dist Sun Dec 29 12:30:06 2013 (r260037) @@ -38,6 +38,16 @@ .. .. .. + share + examples + tests + atf + .. + plain + .. + .. + .. + .. usr.bin atf atf-sh Modified: stable/10/share/Makefile ============================================================================== --- stable/10/share/Makefile Sun Dec 29 11:19:09 2013 (r260036) +++ stable/10/share/Makefile Sun Dec 29 12:30:06 2013 (r260037) @@ -26,6 +26,7 @@ SUBDIR= ${_colldef} \ ${_syscons} \ tabset \ termcap \ + ${_tests} \ ${_timedef} \ ${_zoneinfo} @@ -80,6 +81,10 @@ _doc= doc _syscons= syscons .endif +.if ${MK_TESTS} != "no" +_tests= tests +.endif + .if ${MK_ZONEINFO} != "no" _zoneinfo= zoneinfo .endif Modified: stable/10/share/examples/Makefile ============================================================================== --- stable/10/share/examples/Makefile Sun Dec 29 11:19:09 2013 (r260036) +++ stable/10/share/examples/Makefile Sun Dec 29 12:30:06 2013 (r260037) @@ -249,4 +249,8 @@ SUBDIR+=pf .endif .endif +.if ${MK_TESTS} != "no" +SUBDIR+=tests +.endif + .include Copied: stable/10/share/examples/tests/tests/plain/cp_test.sh (from r258552, head/share/examples/tests/tests/plain/cp_test.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/share/examples/tests/tests/plain/cp_test.sh Sun Dec 29 12:30:06 2013 (r260037, copy of r258552, head/share/examples/tests/tests/plain/cp_test.sh) @@ -0,0 +1,84 @@ +# $FreeBSD$ +# +# Copyright 2013 Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google Inc. nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# +# INTRODUCTION +# +# This plain test program mimics the structure and contents of its +# ATF-based counterpart. It attempts to represent various test cases +# in different separate functions and just calls them all from main. +# +# In reality, plain test programs can be much simpler. All they have +# to do is return 0 on success and non-0 otherwise. +# + +set -e + +# Prints an error message and exits. +err() { + echo "${@}" 1>&2 + exit 1 +} + +# Auxiliary function to compare two files for equality. +verify_copy() { + if ! cmp -s "${1}" "${2}"; then + diff -u "${1}" "${2}" + err "${1} and ${2} differ, but they should be equal" + fi +} + +simple_test() { + echo 'File 1' >file1 + cp file1 file2 || err "cp failed" + verify_copy file1 file2 +} + +force_test() { + echo 'File 1' >file1 + echo 'File 2' >file2 + chmod 400 file2 + cp -f file1 file2 || err "cp failed" + verify_copy file1 file2 +} + +# If you have read the cp_test.sh counterpart in the atf/ directory, you +# may think that the sequencing of tests below and the exposed behavior +# to the user is very similar. But you'd be wrong. +# +# There are two major differences with this and the ATF version. The +# first is that the code below has no provisions to detect failures in +# one test and continue running the other tests: the first failure +# causes the whole test program to exit. The second is that this +# particular "main" has no arguments: without ATF, all test programs may +# expose a different command-line interface, and this is an issue for +# consistency purposes. +simple_test +force_test Modified: stable/10/share/mk/plain.test.mk ============================================================================== --- stable/10/share/mk/plain.test.mk Sun Dec 29 11:19:09 2013 (r260036) +++ stable/10/share/mk/plain.test.mk Sun Dec 29 12:30:06 2013 (r260037) @@ -46,6 +46,16 @@ _TESTS+= ${PLAIN_TESTS_SH} .for _T in ${PLAIN_TESTS_SH} SCRIPTSDIR_${_T}= ${TESTSDIR} TEST_INTERFACE.${_T}= plain +CLEANFILES+= ${_T} ${_T}.tmp +# TODO(jmmv): It seems to me that this SED and SRC functionality should +# exist in bsd.prog.mk along the support for SCRIPTS. Move it there if +# this proves to be useful within the tests. +PLAIN_TESTS_SH_SED_${_T}?= # empty +PLAIN_TESTS_SH_SRC_${_T}?= ${_T}.sh +${_T}: ${PLAIN_TESTS_SH_SRC_${_T}} + cat ${.ALLSRC} | sed ${PLAIN_TESTS_SH_SED_${_T}} >${.TARGET}.tmp + chmod +x ${.TARGET}.tmp + mv ${.TARGET}.tmp ${.TARGET} .endfor .endif From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 02:19:24 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5690FC9F; Mon, 30 Dec 2013 02:19:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 36D801A96; Mon, 30 Dec 2013 02:19:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBU2JNch084657; Mon, 30 Dec 2013 02:19:23 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBU2JNdV084656; Mon, 30 Dec 2013 02:19:23 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201312300219.rBU2JNdV084656@svn.freebsd.org> From: Glen Barber Date: Mon, 30 Dec 2013 02:19:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260071 - stable/10/release X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 02:19:24 -0000 Author: gjb Date: Mon Dec 30 02:19:23 2013 New Revision: 260071 URL: http://svnweb.freebsd.org/changeset/base/260071 Log: MFC r259868, r259881, 259955: r259868 (jmmv): Delay copying of resolv.conf into the chroot until /etc exists. r259881 (jmmv): Put the release objdir inside the chroot. 259955: Move build_doc_ports() to the if...fi block from which it is called. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/release.sh Directory Properties: stable/10/ (props changed) Modified: stable/10/release/release.sh ============================================================================== --- stable/10/release/release.sh Mon Dec 30 01:32:17 2013 (r260070) +++ stable/10/release/release.sh Mon Dec 30 02:19:23 2013 (r260071) @@ -126,6 +126,7 @@ if [ "x${TARGET}" != "x" ] && [ "x${TARG else ARCH_FLAGS= fi +CHROOT_MAKEENV="MAKEOBJDIRPREFIX=${CHROOTDIR}/tmp/obj" CHROOT_WMAKEFLAGS="${MAKE_FLAGS} ${WORLD_FLAGS} ${CONF_FILES}" CHROOT_IMAKEFLAGS="${CONF_FILES}" CHROOT_DMAKEFLAGS="${CONF_FILES}" @@ -162,29 +163,16 @@ if [ "x${NOPORTS}" = "x" ]; then svn co ${SVNROOT}/${PORTBRANCH} ${CHROOTDIR}/usr/ports fi -cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf cd ${CHROOTDIR}/usr/src -make ${CHROOT_WMAKEFLAGS} buildworld -make ${CHROOT_IMAKEFLAGS} installworld DESTDIR=${CHROOTDIR} -make ${CHROOT_DMAKEFLAGS} distribution DESTDIR=${CHROOTDIR} +env ${CHROOT_MAKEENV} make ${CHROOT_WMAKEFLAGS} buildworld +env ${CHROOT_MAKEENV} make ${CHROOT_IMAKEFLAGS} installworld \ + DESTDIR=${CHROOTDIR} +env ${CHROOT_MAKEENV} make ${CHROOT_DMAKEFLAGS} distribution \ + DESTDIR=${CHROOTDIR} mount -t devfs devfs ${CHROOTDIR}/dev +cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf trap "umount ${CHROOTDIR}/dev" EXIT # Clean up devfs mount on exit -build_doc_ports() { - # Run ldconfig(8) in the chroot directory so /var/run/ld-elf*.so.hints - # is created. This is needed by ports-mgmt/pkg. - chroot ${CHROOTDIR} /etc/rc.d/ldconfig forcerestart - - ## Trick the ports 'run-autotools-fixup' target to do the right thing. - _OSVERSION=$(sysctl -n kern.osreldate) - if [ -d ${CHROOTDIR}/usr/doc ] && [ "x${NODOC}" = "x" ]; then - PBUILD_FLAGS="OSVERSION=${_OSVERSION} BATCH=yes" - PBUILD_FLAGS="${PBUILD_FLAGS}" - chroot ${CHROOTDIR} make -C /usr/ports/textproc/docproj \ - ${PBUILD_FLAGS} OPTIONS_UNSET="FOP IGOR" install clean distclean - fi -} - # If MAKE_CONF and/or SRC_CONF are set and not character devices (/dev/null), # copy them to the chroot. if [ -e ${MAKE_CONF} ] && [ ! -c ${MAKE_CONF} ]; then @@ -197,7 +185,18 @@ if [ -e ${SRC_CONF} ] && [ ! -c ${SRC_CO fi if [ -d ${CHROOTDIR}/usr/ports ]; then - build_doc_ports ${CHROOTDIR} + # Run ldconfig(8) in the chroot directory so /var/run/ld-elf*.so.hints + # is created. This is needed by ports-mgmt/pkg. + chroot ${CHROOTDIR} /etc/rc.d/ldconfig forcerestart + + ## Trick the ports 'run-autotools-fixup' target to do the right thing. + _OSVERSION=$(sysctl -n kern.osreldate) + if [ -d ${CHROOTDIR}/usr/doc ] && [ "x${NODOC}" = "x" ]; then + PBUILD_FLAGS="OSVERSION=${_OSVERSION} BATCH=yes" + PBUILD_FLAGS="${PBUILD_FLAGS}" + chroot ${CHROOTDIR} make -C /usr/ports/textproc/docproj \ + ${PBUILD_FLAGS} OPTIONS_UNSET="FOP IGOR" install clean distclean + fi fi if [ "x${RELSTRING}" = "x" ]; then From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 03:39:50 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0F796B34; Mon, 30 Dec 2013 03:39:50 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EC83210DE; Mon, 30 Dec 2013 03:39:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBU3dnIh015654; Mon, 30 Dec 2013 03:39:49 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBU3dkis015637; Mon, 30 Dec 2013 03:39:46 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201312300339.rBU3dkis015637@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Mon, 30 Dec 2013 03:39:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260074 - in stable/10/contrib/gcc: . config/i386 config/rs6000 cp doc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 03:39:50 -0000 Author: pfg Date: Mon Dec 30 03:39:46 2013 New Revision: 260074 URL: http://svnweb.freebsd.org/changeset/base/260074 Log: MFC r259005, r259092: gcc: Add -flax-vector-conversions gcc: new fvisibility-ms-compat option These are useful for compatibility with newwer gcc and clang. Obtained from: gcc 4.3 (rev. 120572, 120688, 126088; GPLv2) Modified: stable/10/contrib/gcc/ChangeLog.gcc43 stable/10/contrib/gcc/c-common.c stable/10/contrib/gcc/c-common.h stable/10/contrib/gcc/c-opts.c stable/10/contrib/gcc/c-typeck.c stable/10/contrib/gcc/c.opt stable/10/contrib/gcc/config/i386/i386.c stable/10/contrib/gcc/config/rs6000/altivec.h stable/10/contrib/gcc/config/rs6000/rs6000-c.c stable/10/contrib/gcc/cp/ChangeLog.gcc43 stable/10/contrib/gcc/cp/call.c stable/10/contrib/gcc/cp/decl.c stable/10/contrib/gcc/cp/decl2.c stable/10/contrib/gcc/cp/typeck.c stable/10/contrib/gcc/doc/invoke.texi Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/gcc/ChangeLog.gcc43 ============================================================================== --- stable/10/contrib/gcc/ChangeLog.gcc43 Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/ChangeLog.gcc43 Mon Dec 30 03:39:46 2013 (r260074) @@ -45,6 +45,12 @@ * flags.h (force_align_functions_log): Delete. * toplev.c (force_align_functions_log): Delete. +2007-06-28 Geoffrey Keating (r126088) + + * doc/invoke.texi (C++ Dialect Options): Document + fvisibility-ms-compat. + * c.opt (fvisibility-ms-compat): New. + 2007-06-05 Joerg Wunsch (r125346) PR preprocessor/23479 @@ -405,14 +411,44 @@ * config.gcc: Support core2 processor. -2007-01-08 Geoffrey Keating (r120611) +2007-01-11 Joseph Myers (r120688) + + * c-common.c (vector_types_convertible_p): Treat opaque types as + always convertible if they have the same size, but not otherwise. +2007-01-08 Geoffrey Keating (r120611) + * target.h (struct gcc_target): New field library_rtti_comdat. * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New. (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT. * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT. * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. +2007-01-08 Mark Shinwell (r120572) + + * c.opt: Add -flax-vector-conversions. + * c-typeck.c (convert_for_assignment): Pass flag to + vector_types_convertible_p to allow emission of note. + (digest_init): Likewise. + * c-opts.c: Handle -flax-vector-conversions. + * c-common.c (flag_lax_vector_conversions): New. + (vector_types_convertible_p): Unless -flax-vector conversions + has been passed, disallow conversions between vectors with + differing numbers of subparts and/or element types. If such + a conversion is disallowed, possibly emit a note on the first + occasion only to inform the user of -flax-vector-conversions. + The new last argument specifies this. + * c-common.h (flag_lax_vector_conversions): New. + (vector_types_convertible_p): Add extra argument. + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use + char_type_node for V*QI type vectors. + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): + Update to satisfy new typechecking rules. + * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both + C and C++ variants. + * doc/invoke.texi (C Dialect Options): Document + -flax-vector-conversions. + 2007-01-05 Manuel Lopez-Ibanez (r120505) PR c/19978 Modified: stable/10/contrib/gcc/c-common.c ============================================================================== --- stable/10/contrib/gcc/c-common.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/c-common.c Mon Dec 30 03:39:46 2013 (r260074) @@ -254,6 +254,10 @@ int flag_short_double; int flag_short_wchar; +/* Nonzero means allow implicit conversions between vectors with + differing numbers of subparts and/or differing element types. */ +int flag_lax_vector_conversions; + /* Nonzero means allow Microsoft extensions without warnings or errors. */ int flag_ms_extensions; @@ -1095,18 +1099,45 @@ constant_fits_type_p (tree c, tree type) return !TREE_OVERFLOW (c); } -/* Nonzero if vector types T1 and T2 can be converted to each other - without an explicit cast. */ -int -vector_types_convertible_p (tree t1, tree t2) + +/* True if vector types T1 and T2 can be converted to each other + without an explicit cast. If EMIT_LAX_NOTE is true, and T1 and T2 + can only be converted with -flax-vector-conversions yet that is not + in effect, emit a note telling the user about that option if such + a note has not previously been emitted. */ +bool +vector_types_convertible_p (tree t1, tree t2, bool emit_lax_note) { - return targetm.vector_opaque_p (t1) - || targetm.vector_opaque_p (t2) - || (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)) - && (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE || - TYPE_PRECISION (t1) == TYPE_PRECISION (t2)) - && INTEGRAL_TYPE_P (TREE_TYPE (t1)) - == INTEGRAL_TYPE_P (TREE_TYPE (t2))); + static bool emitted_lax_note = false; + bool convertible_lax; + + if ((targetm.vector_opaque_p (t1) || targetm.vector_opaque_p (t2)) + && tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))) + return true; + + convertible_lax = + (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)) + && (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE || + TYPE_PRECISION (t1) == TYPE_PRECISION (t2)) + && (INTEGRAL_TYPE_P (TREE_TYPE (t1)) + == INTEGRAL_TYPE_P (TREE_TYPE (t2)))); + + if (!convertible_lax || flag_lax_vector_conversions) + return convertible_lax; + + if (TYPE_VECTOR_SUBPARTS (t1) == TYPE_VECTOR_SUBPARTS (t2) + && comptypes (TREE_TYPE (t1), TREE_TYPE (t2))) + return true; + + if (emit_lax_note && !emitted_lax_note) + { + emitted_lax_note = true; + inform ("use -flax-vector-conversions to permit " + "conversions between vectors with differing " + "element types or numbers of subparts"); + } + + return false; } /* Convert EXPR to TYPE, warning about conversion problems with constants. Modified: stable/10/contrib/gcc/c-common.h ============================================================================== --- stable/10/contrib/gcc/c-common.h Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/c-common.h Mon Dec 30 03:39:46 2013 (r260074) @@ -389,6 +389,10 @@ extern int flag_short_double; extern int flag_short_wchar; +/* Nonzero means allow implicit conversions between vectors with + differing numbers of subparts and/or differing element types. */ +extern int flag_lax_vector_conversions; + /* Nonzero means allow Microsoft extensions without warnings or errors. */ extern int flag_ms_extensions; @@ -791,7 +795,7 @@ extern tree finish_label_address_expr (t extern tree lookup_label (tree); extern tree lookup_name (tree); -extern int vector_types_convertible_p (tree t1, tree t2); +extern bool vector_types_convertible_p (tree t1, tree t2, bool emit_lax_note); extern rtx c_expand_expr (tree, rtx, enum machine_mode, int, rtx *); Modified: stable/10/contrib/gcc/c-opts.c ============================================================================== --- stable/10/contrib/gcc/c-opts.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/c-opts.c Mon Dec 30 03:39:46 2013 (r260074) @@ -716,6 +716,10 @@ c_common_handle_option (size_t scode, co flag_implicit_templates = value; break; + case OPT_flax_vector_conversions: + flag_lax_vector_conversions = value; + break; + case OPT_fms_extensions: flag_ms_extensions = value; break; Modified: stable/10/contrib/gcc/c-typeck.c ============================================================================== --- stable/10/contrib/gcc/c-typeck.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/c-typeck.c Mon Dec 30 03:39:46 2013 (r260074) @@ -3893,7 +3893,7 @@ convert_for_assignment (tree type, tree } /* Some types can interconvert without explicit casts. */ else if (codel == VECTOR_TYPE && coder == VECTOR_TYPE - && vector_types_convertible_p (type, TREE_TYPE (rhs))) + && vector_types_convertible_p (type, TREE_TYPE (rhs), true)) return convert (type, rhs); /* Arithmetic types all interconvert, and enum is treated like int. */ else if ((codel == INTEGER_TYPE || codel == REAL_TYPE @@ -4629,7 +4629,7 @@ digest_init (tree type, tree init, bool below and handle as a constructor. */ if (code == VECTOR_TYPE && TREE_CODE (TREE_TYPE (inside_init)) == VECTOR_TYPE - && vector_types_convertible_p (TREE_TYPE (inside_init), type) + && vector_types_convertible_p (TREE_TYPE (inside_init), type, true) && TREE_CONSTANT (inside_init)) { if (TREE_CODE (inside_init) == VECTOR_CST Modified: stable/10/contrib/gcc/c.opt ============================================================================== --- stable/10/contrib/gcc/c.opt Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/c.opt Mon Dec 30 03:39:46 2013 (r260074) @@ -590,6 +590,10 @@ Inject friend functions into enclosing n flabels-ok C++ ObjC++ +flax-vector-conversions +C ObjC C++ ObjC++ +Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types. + fms-extensions C ObjC C++ ObjC++ Don't warn about uses of Microsoft extensions @@ -743,6 +747,10 @@ fvisibility-inlines-hidden C++ ObjC++ Marks all inlined methods as having hidden visibility +fvisibility-ms-compat +C++ ObjC++ Var(flag_visibility_ms_compat) +Changes visibility to match Microsoft Visual Studio by default + fvtable-gc C++ ObjC++ Discard unused virtual functions Modified: stable/10/contrib/gcc/config/i386/i386.c ============================================================================== --- stable/10/contrib/gcc/config/i386/i386.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/config/i386/i386.c Mon Dec 30 03:39:46 2013 (r260074) @@ -15408,7 +15408,7 @@ ix86_init_mmx_sse_builtins (void) const struct builtin_description * d; size_t i; - tree V16QI_type_node = build_vector_type_for_mode (intQI_type_node, V16QImode); + tree V16QI_type_node = build_vector_type_for_mode (char_type_node, V16QImode); tree V2SI_type_node = build_vector_type_for_mode (intSI_type_node, V2SImode); tree V2SF_type_node = build_vector_type_for_mode (float_type_node, V2SFmode); tree V2DI_type_node @@ -15417,7 +15417,7 @@ ix86_init_mmx_sse_builtins (void) tree V4SF_type_node = build_vector_type_for_mode (float_type_node, V4SFmode); tree V4SI_type_node = build_vector_type_for_mode (intSI_type_node, V4SImode); tree V4HI_type_node = build_vector_type_for_mode (intHI_type_node, V4HImode); - tree V8QI_type_node = build_vector_type_for_mode (intQI_type_node, V8QImode); + tree V8QI_type_node = build_vector_type_for_mode (char_type_node, V8QImode); tree V8HI_type_node = build_vector_type_for_mode (intHI_type_node, V8HImode); tree pchar_type_node = build_pointer_type (char_type_node); Modified: stable/10/contrib/gcc/config/rs6000/altivec.h ============================================================================== --- stable/10/contrib/gcc/config/rs6000/altivec.h Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/config/rs6000/altivec.h Mon Dec 30 03:39:46 2013 (r260074) @@ -332,7 +332,7 @@ NAME (T a1, U a2) \ __altivec_binary_pred(vec_cmplt, __builtin_vec_cmpgt (a2, a1)) __altivec_binary_pred(vec_cmple, - __builtin_altivec_cmpge (a2, a1)) + __builtin_vec_cmpge (a2, a1)) __altivec_scalar_pred(vec_all_in, __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2)) @@ -402,7 +402,7 @@ __altivec_scalar_pred(vec_any_nle, #undef __altivec_binary_pred #else #define vec_cmplt(a1, a2) __builtin_vec_cmpgt ((a2), (a1)) -#define vec_cmple(a1, a2) __builtin_altivec_vcmpgefp ((a2), (a1)) +#define vec_cmple(a1, a2) __builtin_vec_cmpge ((a2), (a1)) #define vec_all_in(a1, a2) __builtin_altivec_vcmpbfp_p (__CR6_EQ, (a1), (a2)) #define vec_any_out(a1, a2) __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, (a1), (a2)) Modified: stable/10/contrib/gcc/config/rs6000/rs6000-c.c ============================================================================== --- stable/10/contrib/gcc/config/rs6000/rs6000-c.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/config/rs6000/rs6000-c.c Mon Dec 30 03:39:46 2013 (r260074) @@ -222,17 +222,17 @@ const struct altivec_builtin_types altiv { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSB, RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSB, - RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, + RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSH, RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHSH, - RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHPX, RS6000_BTI_unsigned_V4SI, RS6000_BTI_pixel_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKHSH, ALTIVEC_BUILTIN_VUPKHSH, RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKHSH, ALTIVEC_BUILTIN_VUPKHSH, - RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKHPX, ALTIVEC_BUILTIN_VUPKHPX, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKHPX, ALTIVEC_BUILTIN_VUPKHPX, @@ -240,17 +240,17 @@ const struct altivec_builtin_types altiv { ALTIVEC_BUILTIN_VEC_VUPKHSB, ALTIVEC_BUILTIN_VUPKHSB, RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKHSB, ALTIVEC_BUILTIN_VUPKHSB, - RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, + RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSB, RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSB, - RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, + RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLPX, RS6000_BTI_unsigned_V4SI, RS6000_BTI_pixel_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSH, RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLSH, - RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKLPX, ALTIVEC_BUILTIN_VUPKLPX, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKLPX, ALTIVEC_BUILTIN_VUPKLPX, @@ -258,11 +258,11 @@ const struct altivec_builtin_types altiv { ALTIVEC_BUILTIN_VEC_VUPKLSH, ALTIVEC_BUILTIN_VUPKLSH, RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKLSH, ALTIVEC_BUILTIN_VUPKLSH, - RS6000_BTI_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V8HI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKLSB, ALTIVEC_BUILTIN_VUPKLSB, RS6000_BTI_V8HI, RS6000_BTI_V16QI, 0, 0 }, { ALTIVEC_BUILTIN_VEC_VUPKLSB, ALTIVEC_BUILTIN_VUPKLSB, - RS6000_BTI_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, + RS6000_BTI_bool_V8HI, RS6000_BTI_bool_V16QI, 0, 0 }, /* Binary AltiVec builtins. */ { ALTIVEC_BUILTIN_VEC_ADD, ALTIVEC_BUILTIN_VADDUBM, @@ -576,31 +576,23 @@ const struct altivec_builtin_types altiv { ALTIVEC_BUILTIN_VEC_CMPEQ, ALTIVEC_BUILTIN_VCMPEQFP, RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPEQFP, ALTIVEC_BUILTIN_VCMPEQFP, - RS6000_BTI_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, - { ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW, - RS6000_BTI_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, - { ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW, - RS6000_BTI_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, + { ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW, RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPEQUW, ALTIVEC_BUILTIN_VCMPEQUW, RS6000_BTI_bool_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 }, - { ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH, - RS6000_BTI_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 }, - { ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH, - RS6000_BTI_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 }, + { ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH, RS6000_BTI_bool_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPEQUH, ALTIVEC_BUILTIN_VCMPEQUH, RS6000_BTI_bool_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 }, - { ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB, - RS6000_BTI_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 }, - { ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB, - RS6000_BTI_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 }, + { ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB, RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPEQUB, ALTIVEC_BUILTIN_VCMPEQUB, RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 }, + { ALTIVEC_BUILTIN_VEC_CMPGE, ALTIVEC_BUILTIN_VCMPGEFP, RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, { ALTIVEC_BUILTIN_VEC_CMPGT, ALTIVEC_BUILTIN_VCMPGTUB, @@ -618,29 +610,29 @@ const struct altivec_builtin_types altiv { ALTIVEC_BUILTIN_VEC_CMPGT, ALTIVEC_BUILTIN_VCMPGTFP, RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTFP, ALTIVEC_BUILTIN_VCMPGTFP, - RS6000_BTI_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_V4SF, RS6000_BTI_V4SF, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTSW, ALTIVEC_BUILTIN_VCMPGTSW, - RS6000_BTI_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTSW, ALTIVEC_BUILTIN_VCMPGTSW, RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, RS6000_BTI_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTUW, ALTIVEC_BUILTIN_VCMPGTUW, - RS6000_BTI_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 }, + RS6000_BTI_bool_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTUW, ALTIVEC_BUILTIN_VCMPGTUW, RS6000_BTI_bool_V4SI, RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V4SI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTSH, ALTIVEC_BUILTIN_VCMPGTSH, - RS6000_BTI_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 }, + RS6000_BTI_bool_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTSH, ALTIVEC_BUILTIN_VCMPGTSH, RS6000_BTI_bool_V8HI, RS6000_BTI_V8HI, RS6000_BTI_V8HI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTUH, ALTIVEC_BUILTIN_VCMPGTUH, - RS6000_BTI_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 }, + RS6000_BTI_bool_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTUH, ALTIVEC_BUILTIN_VCMPGTUH, RS6000_BTI_bool_V8HI, RS6000_BTI_unsigned_V8HI, RS6000_BTI_unsigned_V8HI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTSB, ALTIVEC_BUILTIN_VCMPGTSB, - RS6000_BTI_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 }, + RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTSB, ALTIVEC_BUILTIN_VCMPGTSB, RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, RS6000_BTI_V16QI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTUB, ALTIVEC_BUILTIN_VCMPGTUB, - RS6000_BTI_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 }, + RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 }, { ALTIVEC_BUILTIN_VEC_VCMPGTUB, ALTIVEC_BUILTIN_VCMPGTUB, RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 }, { ALTIVEC_BUILTIN_VEC_CMPLE, ALTIVEC_BUILTIN_VCMPGEFP, Modified: stable/10/contrib/gcc/cp/ChangeLog.gcc43 ============================================================================== --- stable/10/contrib/gcc/cp/ChangeLog.gcc43 Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/cp/ChangeLog.gcc43 Mon Dec 30 03:39:46 2013 (r260074) @@ -7,6 +7,13 @@ * typeck.c (cxx_alignof_expr): When alignof is used on a plain FUNCTION_DECL, return its alignment. +2007-06-28 Geoffrey Keating (r126088) + + * decl2.c (determine_visibility): Implement + flag_visibility_ms_compat effect on type info. + * decl.c (cxx_init_decl_processing): Implement + global effect of flag_visibility_ms_compat. + 2007-06-28 Geoffrey Keating (r126080) * decl2.c (start_objects): Mark constructor-runnning function @@ -37,14 +44,23 @@ * decl.c (compute_array_index_type): New warning flag warn_vla. -2007-01-07 Manuel Lopez-Ibanez +2007-01-08 Mark Shinwell (r120572) + + * call.c (standard_conversion): Pass flag to + vector_types_convertible_p to disallow emission of note. + * typeck.c (convert_for_assignment): Pass flag to + vector_types_convertible_p to allow emission of note. + (ptr_reasonably_similar): Pass flag to vector_types_convertible_p + to disallow emission of note. + +2007-01-07 Manuel Lopez-Ibanez (r120558) PR c++/28986 * typeck.c (build_binary_op): Call overflow_warning if TREE_OVERFLOW_P is true for the result and not for any of the operands. -2007-01-05 Manuel Lopez-Ibanez +2007-01-05 Manuel Lopez-Ibanez (r120505) PR c/19978 * semantics.c (finish_unary_op_expr): Warn only if result Modified: stable/10/contrib/gcc/cp/call.c ============================================================================== --- stable/10/contrib/gcc/cp/call.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/cp/call.c Mon Dec 30 03:39:46 2013 (r260074) @@ -838,7 +838,7 @@ standard_conversion (tree to, tree from, conv->rank = cr_promotion; } else if (fcode == VECTOR_TYPE && tcode == VECTOR_TYPE - && vector_types_convertible_p (from, to)) + && vector_types_convertible_p (from, to, false)) return build_conv (ck_std, to, conv); else if (!(flags & LOOKUP_CONSTRUCTOR_CALLABLE) && IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from) Modified: stable/10/contrib/gcc/cp/decl.c ============================================================================== --- stable/10/contrib/gcc/cp/decl.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/cp/decl.c Mon Dec 30 03:39:46 2013 (r260074) @@ -3157,6 +3157,9 @@ cxx_init_decl_processing (void) } if (flag_inline_functions) flag_inline_trees = 2; + + if (flag_visibility_ms_compat) + default_visibility = VISIBILITY_HIDDEN; /* Initially, C. */ current_lang_name = lang_name_c; Modified: stable/10/contrib/gcc/cp/decl2.c ============================================================================== --- stable/10/contrib/gcc/cp/decl2.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/cp/decl2.c Mon Dec 30 03:39:46 2013 (r260074) @@ -1726,6 +1726,19 @@ determine_visibility (tree decl) but have no TEMPLATE_INFO, so don't try to check it. */ use_template = 0; } + else if (TREE_CODE (decl) == VAR_DECL && DECL_TINFO_P (decl) + && flag_visibility_ms_compat) + { + /* Under -fvisibility-ms-compat, types are visible by default, + even though their contents aren't. */ + tree underlying_type = TREE_TYPE (DECL_NAME (decl)); + int underlying_vis = type_visibility (underlying_type); + if (underlying_vis == VISIBILITY_ANON + || CLASSTYPE_VISIBILITY_SPECIFIED (underlying_type)) + constrain_visibility (decl, underlying_vis); + else + DECL_VISIBILITY (decl) = VISIBILITY_DEFAULT; + } else if (TREE_CODE (decl) == VAR_DECL && DECL_TINFO_P (decl)) { /* tinfo visibility is based on the type it's for. */ Modified: stable/10/contrib/gcc/cp/typeck.c ============================================================================== --- stable/10/contrib/gcc/cp/typeck.c Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/cp/typeck.c Mon Dec 30 03:39:46 2013 (r260074) @@ -6229,7 +6229,7 @@ convert_for_assignment (tree type, tree coder = TREE_CODE (rhstype); if (TREE_CODE (type) == VECTOR_TYPE && coder == VECTOR_TYPE - && vector_types_convertible_p (type, rhstype)) + && vector_types_convertible_p (type, rhstype, true)) return convert (type, rhs); if (rhs == error_mark_node || rhstype == error_mark_node) @@ -6799,7 +6799,7 @@ ptr_reasonably_similar (tree to, tree fr continue; if (TREE_CODE (to) == VECTOR_TYPE - && vector_types_convertible_p (to, from)) + && vector_types_convertible_p (to, from, false)) return 1; if (TREE_CODE (to) == INTEGER_TYPE Modified: stable/10/contrib/gcc/doc/invoke.texi ============================================================================== --- stable/10/contrib/gcc/doc/invoke.texi Mon Dec 30 02:52:43 2013 (r260073) +++ stable/10/contrib/gcc/doc/invoke.texi Mon Dec 30 03:39:46 2013 (r260074) @@ -167,7 +167,7 @@ in the following sections. -fno-asm -fno-builtin -fno-builtin-@var{function} @gol -fhosted -ffreestanding -fopenmp -fms-extensions @gol -trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol --fallow-single-precision -fcond-mismatch @gol +-fallow-single-precision -fcond-mismatch -flax-vector-conversions @gol -fsigned-bitfields -fsigned-char @gol @c APPLE LOCAL -Wnewline-eof 2001-08-23 --sts ** -Wnewline-eof (Apple compatible) @gol @@ -188,6 +188,7 @@ in the following sections. -frepo -fno-rtti -fstats -ftemplate-depth-@var{n} @gol -fno-threadsafe-statics -fuse-cxa-atexit -fno-weak -nostdinc++ @gol -fno-default-inline -fvisibility-inlines-hidden @gol +-fvisibility-ms-compat @gol -Wabi -Wctor-dtor-privacy @gol -Wnon-virtual-dtor -Wreorder @gol -Weffc++ -Wno-deprecated -Wstrict-null-sentinel @gol @@ -1339,6 +1340,12 @@ Allow conditional expressions with misma third arguments. The value of such an expression is void. This option is not supported for C++. +@item -flax-vector-conversions +@opindex flax-vector-conversions +Allow implicit conversions between vectors with differing numbers of +elements and/or incompatible element types. This option should not be +used for new code. + @item -funsigned-char @opindex funsigned-char Let the type @code{char} be unsigned, like @code{unsigned char}. @@ -1622,6 +1629,40 @@ Explicitly instantiated inline methods a as their linkage might otherwise cross a shared library boundary. @xref{Template Instantiation}. +@item -fvisibility-ms-compat +@opindex fvisibility-ms-compat +This flag attempts to use visibility settings to make GCC's C++ +linkage model compatible with that of Microsoft Visual Studio. + +The flag makes these changes to GCC's linkage model: + +@enumerate +@item +It sets the default visibility to @code{hidden}, like +@option{-fvisibility=hidden}. + +@item +Types, but not their members, are not hidden by default. + +@item +The One Definition Rule is relaxed for types without explicit +visibility specifications which are defined in more than one different +shared object: those declarations are permitted if they would have +been permitted when this option was not used. +@end enumerate + +In new code it is better to use @option{-fvisibility=hidden} and +export those classes which are intended to be externally visible. +Unfortunately it is possible for code to rely, perhaps accidentally, +on the Visual Studio behaviour. + +Among the consequences of these changes are that static data members +of the same type with the same name but defined in different shared +objects will be different, so changing one will not change the other; +and that pointers to function members defined in different shared +objects may not compare equal. When this flag is given, it is a +violation of the ODR to define types with the same name differently. + @item -fno-weak @opindex fno-weak Do not use weak symbol support, even if it is provided by the linker. From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 05:19:28 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0D92C3F1; Mon, 30 Dec 2013 05:19:28 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EDB56161A; Mon, 30 Dec 2013 05:19:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBU5JRec052442; Mon, 30 Dec 2013 05:19:27 GMT (envelope-from scottl@svn.freebsd.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBU5JRLR052441; Mon, 30 Dec 2013 05:19:27 GMT (envelope-from scottl@svn.freebsd.org) Message-Id: <201312300519.rBU5JRLR052441@svn.freebsd.org> From: Scott Long Date: Mon, 30 Dec 2013 05:19:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260077 - stable/10/sys/net X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 05:19:28 -0000 Author: scottl Date: Mon Dec 30 05:19:27 2013 New Revision: 260077 URL: http://svnweb.freebsd.org/changeset/base/260077 Log: Merge r256563: In the flowtable scanner, restart the scan at the last found position, not at position 0. Changes the scanner from O(N^2) to O(N). Reviewed by: emax Obtained from: Netflix Modified: stable/10/sys/net/flowtable.c Modified: stable/10/sys/net/flowtable.c ============================================================================== --- stable/10/sys/net/flowtable.c Mon Dec 30 05:02:57 2013 (r260076) +++ stable/10/sys/net/flowtable.c Mon Dec 30 05:19:27 2013 (r260077) @@ -1401,7 +1401,7 @@ fle_free(struct flentry *fle, struct flo static void flowtable_free_stale(struct flowtable *ft, struct rtentry *rt) { - int curbit = 0, count; + int curbit = 0, count, tmpsize; struct flentry *fle, **flehead, *fleprev; struct flentry *flefreehead, *flefreetail, *fletmp; bitstr_t *mask, *tmpmask; @@ -1410,6 +1410,7 @@ flowtable_free_stale(struct flowtable *f flefreehead = flefreetail = NULL; mask = flowtable_mask(ft); tmpmask = ft->ft_tmpmask; + tmpsize = ft->ft_size; memcpy(tmpmask, mask, ft->ft_size/8); /* * XXX Note to self, bit_ffs operates at the byte level @@ -1479,7 +1480,9 @@ flowtable_free_stale(struct flowtable *f bit_clear(mask, curbit); FL_ENTRY_UNLOCK(ft, curbit); bit_clear(tmpmask, curbit); - bit_ffs(tmpmask, ft->ft_size, &curbit); + tmpmask += (curbit / 8); + tmpsize -= (curbit / 8) * 8; + bit_ffs(tmpmask, tmpsize, &curbit); } count = 0; while ((fle = flefreehead) != NULL) { From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 05:22:23 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id F2E2D52C; Mon, 30 Dec 2013 05:22:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DCBF41670; Mon, 30 Dec 2013 05:22:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBU5MMun055336; Mon, 30 Dec 2013 05:22:22 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBU5MMiw055333; Mon, 30 Dec 2013 05:22:22 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <201312300522.rBU5MMiw055333@svn.freebsd.org> From: Kirk McKusick Date: Mon, 30 Dec 2013 05:22:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260078 - in stable/10/sys/ufs: ffs ufs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 05:22:23 -0000 Author: mckusick Date: Mon Dec 30 05:22:22 2013 New Revision: 260078 URL: http://svnweb.freebsd.org/changeset/base/260078 Log: MFC of 256801, 256803, 256808, 256812, 256817, 256845, and 256860. This set of changes puts in place the infrastructure to allow soft updates to be multi-threaded. It introduces no functional changes from its current operation. MFC of 256860: Allow kernels without options SOFTUPDATES to build. This should fix the embedded tinderboxes. Reviewed by: emaste MFC of 256845: Fix build problem on ARM (which defaults to building without soft updates). Reported by: Tinderbox Sponsored by: Netflix MFC of 256817: Restructuring of the soft updates code to set it up so that the single kernel-wide soft update lock can be replaced with a per-filesystem soft-updates lock. This per-filesystem lock will allow each filesystem to have its own soft-updates flushing thread rather than being limited to a single soft-updates flushing thread for the entire kernel. Move soft update variables out of the ufsmount structure and into their own mount_softdeps structure referenced by ufsmount field um_softdep. Eventually the per-filesystem lock will be in this structure. For now there is simply a pointer to the kernel-wide soft updates lock. Change all instances of ACQUIRE_LOCK and FREE_LOCK to pass the lock pointer in the mount_softdeps structure instead of a pointer to the kernel-wide soft-updates lock. Replace the five hash tables used by soft updates with per-filesystem copies of these tables allocated in the mount_softdeps structure. Several functions that flush dependencies when too many are allocated in the kernel used to operate across all filesystems. They are now parameterized to flush dependencies from a specified filesystem. For now, we stick with the round-robin flushing strategy when the kernel as a whole has too many dependencies allocated. While there are many lines of changes, there should be no functional change in the operation of soft updates. Tested by: Peter Holm and Scott Long Sponsored by: Netflix MFC of 256812: Fourth of several cleanups to soft dependency implementation. Add KASSERTS that soft dependency functions only get called for filesystems running with soft dependencies. Calling these functions when soft updates are not compiled into the system become panic's. No functional change. Tested by: Peter Holm and Scott Long Sponsored by: Netflix MFC of 256808: Third of several cleanups to soft dependency implementation. Ensure that softdep_unmount() and softdep_setup_sbupdate() only get called for filesystems running with soft dependencies. No functional change. Tested by: Peter Holm and Scott Long Sponsored by: Netflix MFC of 256803: Second of several cleanups to soft dependency implementation. Delete two unused functions in ffs_sofdep.c. No functional change. Tested by: Peter Holm and Scott Long Sponsored by: Netflix MFC of 256801: First of several cleanups to soft dependency implementation. Convert three functions exported from ffs_softdep.c to static functions as they are not used outside of ffs_softdep.c. No functional change. Tested by: Peter Holm and Scott Long Sponsored by: Netflix Modified: stable/10/sys/ufs/ffs/ffs_extern.h stable/10/sys/ufs/ffs/ffs_softdep.c stable/10/sys/ufs/ffs/ffs_vfsops.c stable/10/sys/ufs/ffs/softdep.h stable/10/sys/ufs/ufs/ufs_extern.h stable/10/sys/ufs/ufs/ufsmount.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/ufs/ffs/ffs_extern.h ============================================================================== --- stable/10/sys/ufs/ffs/ffs_extern.h Mon Dec 30 05:19:27 2013 (r260077) +++ stable/10/sys/ufs/ffs/ffs_extern.h Mon Dec 30 05:22:22 2013 (r260078) @@ -152,9 +152,7 @@ void softdep_setup_sbupdate(struct ufsmo void softdep_fsync_mountdev(struct vnode *); int softdep_sync_metadata(struct vnode *); int softdep_sync_buf(struct vnode *, struct buf *, int); -int softdep_process_worklist(struct mount *, int); int softdep_fsync(struct vnode *); -int softdep_waitidle(struct mount *); int softdep_prealloc(struct vnode *, int); int softdep_journal_lookup(struct mount *, struct vnode **); void softdep_journal_freeblocks(struct inode *, struct ucred *, off_t, int); Modified: stable/10/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- stable/10/sys/ufs/ffs/ffs_softdep.c Mon Dec 30 05:19:27 2013 (r260077) +++ stable/10/sys/ufs/ffs/ffs_softdep.c Mon Dec 30 05:22:22 2013 (r260078) @@ -138,6 +138,7 @@ softdep_unmount(mp) struct mount *mp; { + panic("softdep_unmount called"); } void @@ -146,6 +147,8 @@ softdep_setup_sbupdate(ump, fs, bp) struct fs *fs; struct buf *bp; { + + panic("softdep_setup_sbupdate called"); } void @@ -433,8 +436,6 @@ softdep_prealloc(vp, waitok) { panic("%s called", __FUNCTION__); - - return (0); } int @@ -503,14 +504,14 @@ int softdep_sync_metadata(struct vnode *vp) { - return (0); + panic("softdep_sync_metadata called"); } int softdep_sync_buf(struct vnode *vp, struct buf *bp, int waitfor) { - return (0); + panic("softdep_sync_buf called"); } int @@ -521,14 +522,6 @@ softdep_slowdown(vp) panic("softdep_slowdown called"); } -void -softdep_releasefile(ip) - struct inode *ip; /* inode with the zero effective link count */ -{ - - panic("softdep_releasefile called"); -} - int softdep_request_cleanup(fs, vp, cred, resource) struct fs *fs; @@ -543,16 +536,16 @@ softdep_request_cleanup(fs, vp, cred, re int softdep_check_suspend(struct mount *mp, struct vnode *devvp, - int softdep_deps, - int softdep_accdeps, + int softdep_depcnt, + int softdep_accdepcnt, int secondary_writes, int secondary_accwrites) { struct bufobj *bo; int error; - (void) softdep_deps, - (void) softdep_accdeps; + (void) softdep_depcnt, + (void) softdep_accdepcnt; bo = &devvp->v_bufobj; ASSERT_BO_WLOCKED(bo); @@ -623,48 +616,6 @@ softdep_freework(wkhd) FEATURE(softupdates, "FFS soft-updates support"); -/* - * These definitions need to be adapted to the system to which - * this file is being ported. - */ - -#define M_SOFTDEP_FLAGS (M_WAITOK) - -#define D_PAGEDEP 0 -#define D_INODEDEP 1 -#define D_BMSAFEMAP 2 -#define D_NEWBLK 3 -#define D_ALLOCDIRECT 4 -#define D_INDIRDEP 5 -#define D_ALLOCINDIR 6 -#define D_FREEFRAG 7 -#define D_FREEBLKS 8 -#define D_FREEFILE 9 -#define D_DIRADD 10 -#define D_MKDIR 11 -#define D_DIRREM 12 -#define D_NEWDIRBLK 13 -#define D_FREEWORK 14 -#define D_FREEDEP 15 -#define D_JADDREF 16 -#define D_JREMREF 17 -#define D_JMVREF 18 -#define D_JNEWBLK 19 -#define D_JFREEBLK 20 -#define D_JFREEFRAG 21 -#define D_JSEG 22 -#define D_JSEGDEP 23 -#define D_SBDEP 24 -#define D_JTRUNC 25 -#define D_JFSYNC 26 -#define D_SENTINEL 27 -#define D_LAST D_SENTINEL - -unsigned long dep_current[D_LAST + 1]; -unsigned long dep_highuse[D_LAST + 1]; -unsigned long dep_total[D_LAST + 1]; -unsigned long dep_write[D_LAST + 1]; - static SYSCTL_NODE(_debug, OID_AUTO, softdep, CTLFLAG_RW, 0, "soft updates stats"); static SYSCTL_NODE(_debug_softdep, OID_AUTO, total, CTLFLAG_RW, 0, @@ -676,6 +627,11 @@ static SYSCTL_NODE(_debug_softdep, OID_A static SYSCTL_NODE(_debug_softdep, OID_AUTO, write, CTLFLAG_RW, 0, "current dependencies written"); +unsigned long dep_current[D_LAST + 1]; +unsigned long dep_highuse[D_LAST + 1]; +unsigned long dep_total[D_LAST + 1]; +unsigned long dep_write[D_LAST + 1]; + #define SOFTDEP_TYPE(type, str, long) \ static MALLOC_DEFINE(M_ ## type, #str, long); \ SYSCTL_ULONG(_debug_softdep_total, OID_AUTO, str, CTLFLAG_RD, \ @@ -720,6 +676,9 @@ static MALLOC_DEFINE(M_SENTINEL, "sentin static MALLOC_DEFINE(M_SAVEDINO, "savedino", "Saved inodes"); static MALLOC_DEFINE(M_JBLOCKS, "jblocks", "Journal block locations"); +static MALLOC_DEFINE(M_MOUNTDATA, "softdep", "Softdep per-mount data"); + +#define M_SOFTDEP_FLAGS (M_WAITOK) /* * translate from workitem type to memory type @@ -756,8 +715,6 @@ static struct malloc_type *memtype[] = { M_SENTINEL }; -static LIST_HEAD(mkdirlist, mkdir) mkdirlisthd; - #define DtoM(type) (memtype[type]) /* @@ -773,49 +730,16 @@ static LIST_HEAD(mkdirlist, mkdir) mkdir #define DOT_OFFSET offsetof(struct dirtemplate, dot_ino) /* - * Forward declarations. - */ -struct inodedep_hashhead; -struct newblk_hashhead; -struct pagedep_hashhead; -struct bmsafemap_hashhead; - -/* - * Private journaling structures. - */ -struct jblocks { - struct jseglst jb_segs; /* TAILQ of current segments. */ - struct jseg *jb_writeseg; /* Next write to complete. */ - struct jseg *jb_oldestseg; /* Oldest segment with valid entries. */ - struct jextent *jb_extent; /* Extent array. */ - uint64_t jb_nextseq; /* Next sequence number. */ - uint64_t jb_oldestwrseq; /* Oldest written sequence number. */ - uint8_t jb_needseg; /* Need a forced segment. */ - uint8_t jb_suspended; /* Did journal suspend writes? */ - int jb_avail; /* Available extents. */ - int jb_used; /* Last used extent. */ - int jb_head; /* Allocator head. */ - int jb_off; /* Allocator extent offset. */ - int jb_blocks; /* Total disk blocks covered. */ - int jb_free; /* Total disk blocks free. */ - int jb_min; /* Minimum free space. */ - int jb_low; /* Low on space. */ - int jb_age; /* Insertion time of oldest rec. */ -}; - -struct jextent { - ufs2_daddr_t je_daddr; /* Disk block address. */ - int je_blocks; /* Disk block count. */ -}; - -/* * Internal function prototypes. */ +static void check_clear_deps(struct mount *); static void softdep_error(char *, int); +static int softdep_process_worklist(struct mount *, int); +static int softdep_waitidle(struct mount *); static void drain_output(struct vnode *); static struct buf *getdirtybuf(struct buf *, struct rwlock *, int); -static void clear_remove(void); -static void clear_inodedeps(void); +static void clear_remove(struct mount *); +static void clear_inodedeps(struct mount *); static void unlinked_inodedep(struct mount *, struct inodedep *); static void clear_unlinked_inodedep(struct inodedep *); static struct inodedep *first_unlinked_inodedep(struct ufsmount *); @@ -926,7 +850,7 @@ static inline void setup_freeindir(struc static inline struct freeblks *newfreeblks(struct mount *, struct inode *); static void freeblks_free(struct ufsmount *, struct freeblks *, int); static void indir_trunc(struct freework *, ufs2_daddr_t, ufs_lbn_t); -ufs2_daddr_t blkcount(struct fs *, ufs2_daddr_t, off_t); +static ufs2_daddr_t blkcount(struct fs *, ufs2_daddr_t, off_t); static int trunc_check_buf(struct buf *, int *, ufs_lbn_t, int, int); static void trunc_dependencies(struct inode *, struct freeblks *, ufs_lbn_t, int, int); @@ -959,20 +883,20 @@ static void allocdirect_merge(struct all struct allocdirect *, struct allocdirect *); static struct freefrag *allocindir_merge(struct allocindir *, struct allocindir *); -static int bmsafemap_find(struct bmsafemap_hashhead *, struct mount *, int, +static int bmsafemap_find(struct bmsafemap_hashhead *, int, struct bmsafemap **); static struct bmsafemap *bmsafemap_lookup(struct mount *, struct buf *, int cg, struct bmsafemap *); -static int newblk_find(struct newblk_hashhead *, struct mount *, ufs2_daddr_t, - int, struct newblk **); +static int newblk_find(struct newblk_hashhead *, ufs2_daddr_t, int, + struct newblk **); static int newblk_lookup(struct mount *, ufs2_daddr_t, int, struct newblk **); -static int inodedep_find(struct inodedep_hashhead *, struct fs *, ino_t, +static int inodedep_find(struct inodedep_hashhead *, ino_t, struct inodedep **); static int inodedep_lookup(struct mount *, ino_t, int, struct inodedep **); static int pagedep_lookup(struct mount *, struct buf *bp, ino_t, ufs_lbn_t, int, struct pagedep **); static int pagedep_find(struct pagedep_hashhead *, ino_t, ufs_lbn_t, - struct mount *mp, int, struct pagedep **); + struct pagedep **); static void pause_timer(void *); static int request_cleanup(struct mount *, int); static int process_worklist_item(struct mount *, int, int); @@ -987,9 +911,9 @@ static void remove_from_worklist(struct static void softdep_flush(void); static void softdep_flushjournal(struct mount *); static int softdep_speedup(void); -static void worklist_speedup(void); +static void worklist_speedup(struct mount *); static int journal_mount(struct mount *, struct fs *, struct ucred *); -static void journal_unmount(struct mount *); +static void journal_unmount(struct ufsmount *); static int journal_space(struct ufsmount *, int); static void journal_suspend(struct ufsmount *); static int journal_unsuspend(struct ufsmount *ump); @@ -1035,15 +959,25 @@ static void softdep_disk_write_complete( static void softdep_deallocate_dependencies(struct buf *); static int softdep_count_dependencies(struct buf *bp, int); +/* + * Global lock over all of soft updates. + */ static struct rwlock lk; RW_SYSINIT(softdep_lock, &lk, "Softdep Lock"); -#define TRY_ACQUIRE_LOCK(lk) rw_try_wlock(lk) -#define ACQUIRE_LOCK(lk) rw_wlock(lk) -#define FREE_LOCK(lk) rw_wunlock(lk) +/* + * Allow per-filesystem soft-updates locking. + * For now all use the same global lock defined above. + */ +#define LOCK_PTR(ump) ((ump)->um_softdep->sd_fslock) +#define TRY_ACQUIRE_LOCK(ump) rw_try_wlock((ump)->um_softdep->sd_fslock) +#define ACQUIRE_LOCK(ump) rw_wlock((ump)->um_softdep->sd_fslock) +#define FREE_LOCK(ump) rw_wunlock((ump)->um_softdep->sd_fslock) +#define LOCK_OWNED(ump) rw_assert((ump)->um_softdep->sd_fslock, \ + RA_WLOCKED) -#define BUF_AREC(bp) lockallowrecurse(&(bp)->b_lock) -#define BUF_NOREC(bp) lockdisablerecurse(&(bp)->b_lock) +#define BUF_AREC(bp) lockallowrecurse(&(bp)->b_lock) +#define BUF_NOREC(bp) lockdisablerecurse(&(bp)->b_lock) /* * Worklist queue management. @@ -1078,7 +1012,7 @@ worklist_insert(head, item, locked) { if (locked) - rw_assert(&lk, RA_WLOCKED); + LOCK_OWNED(VFSTOUFS(item->wk_mp)); if (item->wk_state & ONWORKLIST) panic("worklist_insert: %p %s(0x%X) already on list", item, TYPENAME(item->wk_type), item->wk_state); @@ -1093,7 +1027,7 @@ worklist_remove(item, locked) { if (locked) - rw_assert(&lk, RA_WLOCKED); + LOCK_OWNED(VFSTOUFS(item->wk_mp)); if ((item->wk_state & ONWORKLIST) == 0) panic("worklist_remove: %p %s(0x%X) not on list", item, TYPENAME(item->wk_type), item->wk_state); @@ -1166,7 +1100,6 @@ jwork_move(dst, src) freedep = freedep_merge(WK_FREEDEP(wk), freedep); } - rw_assert(&lk, RA_WLOCKED); while ((wk = LIST_FIRST(src)) != NULL) { WORKLIST_REMOVE(wk); WORKLIST_INSERT(dst, wk); @@ -1221,7 +1154,6 @@ workitem_free(item, type) int type; { struct ufsmount *ump; - rw_assert(&lk, RA_WLOCKED); #ifdef DEBUG if (item->wk_state & ONWORKLIST) @@ -1234,6 +1166,7 @@ workitem_free(item, type) if (item->wk_state & IOWAITING) wakeup(item); ump = VFSTOUFS(item->wk_mp); + LOCK_OWNED(ump); KASSERT(ump->softdep_deps > 0, ("workitem_free: %s: softdep_deps going negative", ump->um_fs->fs_fsmnt)); @@ -1242,7 +1175,11 @@ workitem_free(item, type) KASSERT(dep_current[item->wk_type] > 0, ("workitem_free: %s: dep_current[%s] going negative", ump->um_fs->fs_fsmnt, TYPENAME(item->wk_type))); + KASSERT(ump->softdep_curdeps[item->wk_type] > 0, + ("workitem_free: %s: softdep_curdeps[%s] going negative", + ump->um_fs->fs_fsmnt, TYPENAME(item->wk_type))); dep_current[item->wk_type]--; + ump->softdep_curdeps[item->wk_type] -= 1; free(item, DtoM(type)); } @@ -1259,14 +1196,15 @@ workitem_alloc(item, type, mp) item->wk_state = 0; ump = VFSTOUFS(mp); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); dep_current[type]++; if (dep_current[type] > dep_highuse[type]) dep_highuse[type] = dep_current[type]; dep_total[type]++; + ump->softdep_curdeps[type] += 1; ump->softdep_deps++; ump->softdep_accdeps++; - FREE_LOCK(&lk); + FREE_LOCK(ump); } static void @@ -1274,7 +1212,15 @@ workitem_reassign(item, newtype) struct worklist *item; int newtype; { + struct ufsmount *ump; + ump = VFSTOUFS(item->wk_mp); + LOCK_OWNED(ump); + KASSERT(ump->softdep_curdeps[item->wk_type] > 0, + ("workitem_reassign: %s: softdep_curdeps[%s] going negative", + VFSTOUFS(item->wk_mp)->um_fs->fs_fsmnt, TYPENAME(item->wk_type))); + ump->softdep_curdeps[item->wk_type] -= 1; + ump->softdep_curdeps[newtype] += 1; KASSERT(dep_current[item->wk_type] > 0, ("workitem_reassign: %s: dep_current[%s] going negative", VFSTOUFS(item->wk_mp)->um_fs->fs_fsmnt, TYPENAME(item->wk_type))); @@ -1295,7 +1241,8 @@ static int tickdelay = 2; /* number of t static int proc_waiting; /* tracks whether we have a timeout posted */ static int *stat_countp; /* statistic to count in proc_waiting timeout */ static struct callout softdep_callout; -static int req_pending; +static struct mount *req_pending; +#define ALLCLEAN ((struct mount *)-1) static int req_clear_inodedeps; /* syncer process flush some inodedeps */ static int req_clear_remove; /* syncer process flush some freeblks */ static int softdep_flushcache = 0; /* Should we do BIO_FLUSH? */ @@ -1303,6 +1250,7 @@ static int softdep_flushcache = 0; /* Sh /* * runtime statistics */ +static int stat_softdep_mounts; /* number of softdep mounted filesystems */ static int stat_worklist_push; /* number of worklist cleanups */ static int stat_blk_limit_push; /* number of times block limit neared */ static int stat_ino_limit_push; /* number of times inode limit neared */ @@ -1334,6 +1282,8 @@ SYSCTL_INT(_debug_softdep, OID_AUTO, tic &tickdelay, 0, ""); SYSCTL_INT(_debug_softdep, OID_AUTO, maxindirdeps, CTLFLAG_RW, &maxindirdeps, 0, ""); +SYSCTL_INT(_debug_softdep, OID_AUTO, softdep_mounts, CTLFLAG_RD, + &stat_softdep_mounts, 0, ""); SYSCTL_INT(_debug_softdep, OID_AUTO, worklist_push, CTLFLAG_RW, &stat_worklist_push, 0,""); SYSCTL_INT(_debug_softdep, OID_AUTO, blk_limit_push, CTLFLAG_RW, @@ -1387,13 +1337,10 @@ SYSCTL_INT(_debug_softdep, OID_AUTO, flu SYSCTL_DECL(_vfs_ffs); -LIST_HEAD(bmsafemap_hashhead, bmsafemap) *bmsafemap_hashtbl; -static u_long bmsafemap_hash; /* size of hash table - 1 */ - -static int compute_summary_at_mount = 0; /* Whether to recompute the summary at mount time */ +/* Whether to recompute the summary at mount time */ +static int compute_summary_at_mount = 0; SYSCTL_INT(_vfs_ffs, OID_AUTO, compute_summary_at_mount, CTLFLAG_RW, &compute_summary_at_mount, 0, "Recompute summary at mount"); - static struct proc *softdepproc; static struct kproc_desc softdep_kp = { "softdepflush", @@ -1418,21 +1365,6 @@ softdep_flush(void) for (;;) { kproc_suspend_check(softdepproc); - ACQUIRE_LOCK(&lk); - /* - * If requested, try removing inode or removal dependencies. - */ - if (req_clear_inodedeps) { - clear_inodedeps(); - req_clear_inodedeps -= 1; - wakeup_one(&proc_waiting); - } - if (req_clear_remove) { - clear_remove(); - req_clear_remove -= 1; - wakeup_one(&proc_waiting); - } - FREE_LOCK(&lk); remaining = progress = 0; mtx_lock(&mountlist_mtx); for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) { @@ -1441,8 +1373,8 @@ softdep_flush(void) continue; if (vfs_busy(mp, MBF_NOWAIT | MBF_MNTLSTLOCK)) continue; - progress += softdep_process_worklist(mp, 0); ump = VFSTOUFS(mp); + progress += softdep_process_worklist(mp, 0); remaining += ump->softdep_on_worklist; mtx_lock(&mountlist_mtx); nmp = TAILQ_NEXT(mp, mnt_list); @@ -1451,20 +1383,21 @@ softdep_flush(void) mtx_unlock(&mountlist_mtx); if (remaining && progress) continue; - ACQUIRE_LOCK(&lk); - if (!req_pending) + rw_wlock(&lk); + if (req_pending == NULL) msleep(&req_pending, &lk, PVM, "sdflush", hz); - req_pending = 0; - FREE_LOCK(&lk); + req_pending = NULL; + rw_wunlock(&lk); } } static void -worklist_speedup(void) +worklist_speedup(mp) + struct mount *mp; { rw_assert(&lk, RA_WLOCKED); if (req_pending == 0) { - req_pending = 1; + req_pending = mp; wakeup(&req_pending); } } @@ -1473,9 +1406,9 @@ static int softdep_speedup(void) { - worklist_speedup(); + worklist_speedup(ALLCLEAN); bd_speedup(); - return speedup_syncer(); + return (speedup_syncer()); } /* @@ -1496,8 +1429,8 @@ add_to_worklist(wk, flags) { struct ufsmount *ump; - rw_assert(&lk, RA_WLOCKED); ump = VFSTOUFS(wk->wk_mp); + LOCK_OWNED(ump); if (wk->wk_state & ONWORKLIST) panic("add_to_worklist: %s(0x%X) already on list", TYPENAME(wk->wk_type), wk->wk_state); @@ -1513,7 +1446,7 @@ add_to_worklist(wk, flags) } ump->softdep_on_worklist += 1; if (flags & WK_NODELAY) - worklist_speedup(); + worklist_speedup(wk->wk_mp); } /* @@ -1549,9 +1482,11 @@ wait_worklist(wk, wmesg) struct worklist *wk; char *wmesg; { + struct ufsmount *ump; + ump = VFSTOUFS(wk->wk_mp); wk->wk_state |= IOWAITING; - msleep(wk, &lk, PVM, wmesg, 0); + msleep(wk, LOCK_PTR(ump), PVM, wmesg, 0); } /* @@ -1563,7 +1498,7 @@ wait_worklist(wk, wmesg) * ordering ensures that no new triples will be generated * until all the old ones have been purged from the dependency lists. */ -int +static int softdep_process_worklist(mp, full) struct mount *mp; int full; @@ -1573,54 +1508,41 @@ softdep_process_worklist(mp, full) long starttime; KASSERT(mp != NULL, ("softdep_process_worklist: NULL mp")); - /* - * Record the process identifier of our caller so that we can give - * this process preferential treatment in request_cleanup below. - */ + if (MOUNTEDSOFTDEP(mp) == 0) + return (0); matchcnt = 0; ump = VFSTOUFS(mp); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); starttime = time_second; - softdep_process_journal(mp, NULL, full?MNT_WAIT:0); + softdep_process_journal(mp, NULL, full ? MNT_WAIT : 0); + check_clear_deps(mp); while (ump->softdep_on_worklist > 0) { if ((cnt = process_worklist_item(mp, 10, LK_NOWAIT)) == 0) break; else matchcnt += cnt; - /* - * If requested, try removing inode or removal dependencies. - */ - if (req_clear_inodedeps) { - clear_inodedeps(); - req_clear_inodedeps -= 1; - wakeup_one(&proc_waiting); - } - if (req_clear_remove) { - clear_remove(); - req_clear_remove -= 1; - wakeup_one(&proc_waiting); - } + check_clear_deps(mp); /* * We do not generally want to stop for buffer space, but if * we are really being a buffer hog, we will stop and wait. */ if (should_yield()) { - FREE_LOCK(&lk); + FREE_LOCK(ump); kern_yield(PRI_USER); bwillwrite(); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); } /* * Never allow processing to run for more than one - * second. Otherwise the other mountpoints may get - * excessively backlogged. + * second. This gives the syncer thread the opportunity + * to pause if appropriate. */ if (!full && starttime != time_second) break; } if (full == 0) journal_unsuspend(ump); - FREE_LOCK(&lk); + FREE_LOCK(ump); return (matchcnt); } @@ -1635,12 +1557,13 @@ process_removes(vp) { struct inodedep *inodedep; struct dirrem *dirrem; + struct ufsmount *ump; struct mount *mp; ino_t inum; - rw_assert(&lk, RA_WLOCKED); - mp = vp->v_mount; + ump = VFSTOUFS(mp); + LOCK_OWNED(ump); inum = VTOI(vp)->i_number; for (;;) { top: @@ -1663,12 +1586,12 @@ top: if (dirrem == NULL) return; remove_from_worklist(&dirrem->dm_list); - FREE_LOCK(&lk); + FREE_LOCK(ump); if (vn_start_secondary_write(NULL, &mp, V_NOWAIT)) panic("process_removes: suspended filesystem"); handle_workitem_remove(dirrem, 0); vn_finished_secondary_write(mp); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); } } @@ -1684,13 +1607,14 @@ process_truncates(vp) { struct inodedep *inodedep; struct freeblks *freeblks; + struct ufsmount *ump; struct mount *mp; ino_t inum; int cgwait; - rw_assert(&lk, RA_WLOCKED); - mp = vp->v_mount; + ump = VFSTOUFS(mp); + LOCK_OWNED(ump); inum = VTOI(vp)->i_number; for (;;) { if (inodedep_lookup(mp, inum, 0, &inodedep) == 0) @@ -1711,33 +1635,33 @@ process_truncates(vp) } /* Freeblks is waiting on a inode write. */ if ((freeblks->fb_state & COMPLETE) == 0) { - FREE_LOCK(&lk); + FREE_LOCK(ump); ffs_update(vp, 1); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); break; } if ((freeblks->fb_state & (ALLCOMPLETE | ONWORKLIST)) == (ALLCOMPLETE | ONWORKLIST)) { remove_from_worklist(&freeblks->fb_list); freeblks->fb_state |= INPROGRESS; - FREE_LOCK(&lk); + FREE_LOCK(ump); if (vn_start_secondary_write(NULL, &mp, V_NOWAIT)) panic("process_truncates: " "suspended filesystem"); handle_workitem_freeblocks(freeblks, 0); vn_finished_secondary_write(mp); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); break; } if (freeblks->fb_cgwait) cgwait++; } if (cgwait) { - FREE_LOCK(&lk); + FREE_LOCK(ump); sync_cgs(mp, MNT_WAIT); ffs_sync_snap(mp, MNT_WAIT); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); continue; } if (freeblks == NULL) @@ -1761,7 +1685,6 @@ process_worklist_item(mp, target, flags) int matchcnt; int error; - rw_assert(&lk, RA_WLOCKED); KASSERT(mp != NULL, ("process_worklist_item: NULL mp")); /* * If we are being called because of a process doing a @@ -1772,6 +1695,7 @@ process_worklist_item(mp, target, flags) return (-1); PHOLD(curproc); /* Don't let the stack go away. */ ump = VFSTOUFS(mp); + LOCK_OWNED(ump); matchcnt = 0; sentinel.wk_mp = NULL; sentinel.wk_type = D_SENTINEL; @@ -1788,7 +1712,7 @@ process_worklist_item(mp, target, flags) wk); wk->wk_state |= INPROGRESS; remove_from_worklist(wk); - FREE_LOCK(&lk); + FREE_LOCK(ump); if (vn_start_secondary_write(NULL, &mp, V_NOWAIT)) panic("process_worklist_item: suspended filesystem"); switch (wk->wk_type) { @@ -1821,7 +1745,7 @@ process_worklist_item(mp, target, flags) /* NOTREACHED */ } vn_finished_secondary_write(mp); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); if (error == 0) { if (++matchcnt == target) break; @@ -1855,11 +1779,17 @@ softdep_move_dependencies(oldbp, newbp) struct buf *newbp; { struct worklist *wk, *wktail; + struct ufsmount *ump; int dirty; + if ((wk = LIST_FIRST(&oldbp->b_dep)) == NULL) + return (0); + KASSERT(MOUNTEDSOFTDEP(wk->wk_mp) != 0, + ("softdep_move_dependencies called on non-softdep filesystem")); dirty = 0; wktail = NULL; - ACQUIRE_LOCK(&lk); + ump = VFSTOUFS(wk->wk_mp); + ACQUIRE_LOCK(ump); while ((wk = LIST_FIRST(&oldbp->b_dep)) != NULL) { LIST_REMOVE(wk, wk_list); if (wk->wk_type == D_BMSAFEMAP && @@ -1871,7 +1801,7 @@ softdep_move_dependencies(oldbp, newbp) LIST_INSERT_AFTER(wktail, wk, wk_list); wktail = wk; } - FREE_LOCK(&lk); + FREE_LOCK(ump); return (dirty); } @@ -1909,7 +1839,7 @@ softdep_flushworklist(oldmnt, countp, td return (error); } -int +static int softdep_waitidle(struct mount *mp) { struct ufsmount *ump; @@ -1917,15 +1847,15 @@ softdep_waitidle(struct mount *mp) int i; ump = VFSTOUFS(mp); - ACQUIRE_LOCK(&lk); + ACQUIRE_LOCK(ump); for (i = 0; i < 10 && ump->softdep_deps; i++) { ump->softdep_req = 1; if (ump->softdep_on_worklist) panic("softdep_waitidle: work added after flush."); - msleep(&ump->softdep_deps, &lk, PVM, "softdeps", 1); + msleep(&ump->softdep_deps, LOCK_PTR(ump), PVM, "softdeps", 1); } ump->softdep_req = 0; - FREE_LOCK(&lk); + FREE_LOCK(ump); error = 0; if (i == 10) { error = EBUSY; @@ -1952,6 +1882,8 @@ softdep_flushfiles(oldmnt, flags, td) int error, early, depcount, loopcnt, retry_flush_count, retry; int morework; + KASSERT(MOUNTEDSOFTDEP(oldmnt) != 0, + ("softdep_flushfiles called on non-softdep filesystem")); loopcnt = 10; retry_flush_count = 3; retry_flush: @@ -2022,12 +1954,14 @@ retry_flush: /* * Structure hashing. * - * There are three types of structures that can be looked up: + * There are four types of structures that can be looked up: * 1) pagedep structures identified by mount point, inode number, * and logical block. * 2) inodedep structures identified by mount point and inode number. * 3) newblk structures identified by mount point and * physical block number. + * 4) bmsafemap structures identified by mount point and + * cylinder group number. * * The "pagedep" and "inodedep" dependency structures are hashed * separately from the file blocks and inodes to which they correspond. @@ -2039,7 +1973,8 @@ retry_flush: * their allocdirect or allocindir structure. * * The lookup routines optionally create and hash a new instance when - * an existing entry is not found. + * an existing entry is not found. The bmsafemap lookup routine always + * allocates a new structure if an existing one is not found. */ #define DEPALLOC 0x0001 /* allocate structure if lookup fails */ #define NODELAY 0x0002 /* cannot do background work */ @@ -2047,26 +1982,20 @@ retry_flush: /* * Structures and routines associated with pagedep caching. */ -LIST_HEAD(pagedep_hashhead, pagedep) *pagedep_hashtbl; -u_long pagedep_hash; /* size of hash table - 1 */ -#define PAGEDEP_HASH(mp, inum, lbn) \ - (&pagedep_hashtbl[((((register_t)(mp)) >> 13) + (inum) + (lbn)) & \ - pagedep_hash]) +#define PAGEDEP_HASH(ump, inum, lbn) \ + (&(ump)->pagedep_hashtbl[((inum) + (lbn)) & (ump)->pagedep_hash_size]) static int -pagedep_find(pagedephd, ino, lbn, mp, flags, pagedeppp) +pagedep_find(pagedephd, ino, lbn, pagedeppp) struct pagedep_hashhead *pagedephd; ino_t ino; ufs_lbn_t lbn; - struct mount *mp; - int flags; struct pagedep **pagedeppp; { struct pagedep *pagedep; LIST_FOREACH(pagedep, pagedephd, pd_hash) { - if (ino == pagedep->pd_ino && lbn == pagedep->pd_lbn && - mp == pagedep->pd_list.wk_mp) { + if (ino == pagedep->pd_ino && lbn == pagedep->pd_lbn) { *pagedeppp = pagedep; return (1); } @@ -2092,10 +2021,12 @@ pagedep_lookup(mp, bp, ino, lbn, flags, struct pagedep *pagedep; struct pagedep_hashhead *pagedephd; struct worklist *wk; + struct ufsmount *ump; int ret; int i; - rw_assert(&lk, RA_WLOCKED); + ump = VFSTOUFS(mp); + LOCK_OWNED(ump); if (bp) { LIST_FOREACH(wk, &bp->b_dep, wk_list) { if (wk->wk_type == D_PAGEDEP) { @@ -2104,8 +2035,8 @@ pagedep_lookup(mp, bp, ino, lbn, flags, } } } - pagedephd = PAGEDEP_HASH(mp, ino, lbn); - ret = pagedep_find(pagedephd, ino, lbn, mp, flags, pagedeppp); + pagedephd = PAGEDEP_HASH(ump, ino, lbn); + ret = pagedep_find(pagedephd, ino, lbn, pagedeppp); if (ret) { if (((*pagedeppp)->pd_state & ONWORKLIST) == 0 && bp) WORKLIST_INSERT(&bp->b_dep, &(*pagedeppp)->pd_list); @@ -2113,12 +2044,12 @@ pagedep_lookup(mp, bp, ino, lbn, flags, } if ((flags & DEPALLOC) == 0) return (0); - FREE_LOCK(&lk); + FREE_LOCK(ump); pagedep = malloc(sizeof(struct pagedep), M_PAGEDEP, M_SOFTDEP_FLAGS|M_ZERO); workitem_alloc(&pagedep->pd_list, D_PAGEDEP, mp); - ACQUIRE_LOCK(&lk); - ret = pagedep_find(pagedephd, ino, lbn, mp, flags, pagedeppp); + ACQUIRE_LOCK(ump); + ret = pagedep_find(pagedephd, ino, lbn, pagedeppp); if (*pagedeppp) { /* * This should never happen since we only create pagedeps @@ -2142,22 +2073,19 @@ pagedep_lookup(mp, bp, ino, lbn, flags, /* * Structures and routines associated with inodedep caching. */ -LIST_HEAD(inodedep_hashhead, inodedep) *inodedep_hashtbl; -static u_long inodedep_hash; /* size of hash table - 1 */ -#define INODEDEP_HASH(fs, inum) \ - (&inodedep_hashtbl[((((register_t)(fs)) >> 13) + (inum)) & inodedep_hash]) +#define INODEDEP_HASH(ump, inum) \ + (&(ump)->inodedep_hashtbl[(inum) & (ump)->inodedep_hash_size]) static int -inodedep_find(inodedephd, fs, inum, inodedeppp) +inodedep_find(inodedephd, inum, inodedeppp) struct inodedep_hashhead *inodedephd; - struct fs *fs; ino_t inum; struct inodedep **inodedeppp; { struct inodedep *inodedep; LIST_FOREACH(inodedep, inodedephd, id_hash) - if (inum == inodedep->id_ino && fs == inodedep->id_fs) + if (inum == inodedep->id_ino) break; if (inodedep) { *inodedeppp = inodedep; @@ -2182,13 +2110,15 @@ inodedep_lookup(mp, inum, flags, inodede { struct inodedep *inodedep; struct inodedep_hashhead *inodedephd; + struct ufsmount *ump; struct fs *fs; - rw_assert(&lk, RA_WLOCKED); - fs = VFSTOUFS(mp)->um_fs; - inodedephd = INODEDEP_HASH(fs, inum); + ump = VFSTOUFS(mp); + LOCK_OWNED(ump); + fs = ump->um_fs; + inodedephd = INODEDEP_HASH(ump, inum); - if (inodedep_find(inodedephd, fs, inum, inodedeppp)) + if (inodedep_find(inodedephd, inum, inodedeppp)) return (1); if ((flags & DEPALLOC) == 0) return (0); @@ -2197,12 +2127,12 @@ inodedep_lookup(mp, inum, flags, inodede */ if (dep_current[D_INODEDEP] > max_softdeps && (flags & NODELAY) == 0) request_cleanup(mp, FLUSH_INODES); - FREE_LOCK(&lk); + FREE_LOCK(ump); inodedep = malloc(sizeof(struct inodedep), M_INODEDEP, M_SOFTDEP_FLAGS); workitem_alloc(&inodedep->id_list, D_INODEDEP, mp); - ACQUIRE_LOCK(&lk); - if (inodedep_find(inodedephd, fs, inum, inodedeppp)) { + ACQUIRE_LOCK(ump); + if (inodedep_find(inodedephd, inum, inodedeppp)) { WORKITEM_FREE(inodedep, D_INODEDEP); return (1); } @@ -2234,15 +2164,12 @@ inodedep_lookup(mp, inum, flags, inodede /* * Structures and routines associated with newblk caching. */ -LIST_HEAD(newblk_hashhead, newblk) *newblk_hashtbl; -u_long newblk_hash; /* size of hash table - 1 */ -#define NEWBLK_HASH(fs, inum) \ - (&newblk_hashtbl[((((register_t)(fs)) >> 13) + (inum)) & newblk_hash]) +#define NEWBLK_HASH(ump, inum) \ + (&(ump)->newblk_hashtbl[(inum) & (ump)->newblk_hash_size]) static int -newblk_find(newblkhd, mp, newblkno, flags, newblkpp) +newblk_find(newblkhd, newblkno, flags, newblkpp) struct newblk_hashhead *newblkhd; - struct mount *mp; ufs2_daddr_t newblkno; int flags; struct newblk **newblkpp; @@ -2252,8 +2179,6 @@ newblk_find(newblkhd, mp, newblkno, flag LIST_FOREACH(newblk, newblkhd, nb_hash) { if (newblkno != newblk->nb_newblkno) continue; - if (mp != newblk->nb_list.wk_mp) - continue; /* * If we're creating a new dependency don't match those that * have already been converted to allocdirects. This is for @@ -2285,18 +2210,21 @@ newblk_lookup(mp, newblkno, flags, newbl { struct newblk *newblk; struct newblk_hashhead *newblkhd; + struct ufsmount *ump; - newblkhd = NEWBLK_HASH(VFSTOUFS(mp)->um_fs, newblkno); - if (newblk_find(newblkhd, mp, newblkno, flags, newblkpp)) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 08:57:55 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 879458B0; Mon, 30 Dec 2013 08:57:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 733E316CE; Mon, 30 Dec 2013 08:57:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBU8vtVT033311; Mon, 30 Dec 2013 08:57:55 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBU8vtgg033310; Mon, 30 Dec 2013 08:57:55 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201312300857.rBU8vtgg033310@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 30 Dec 2013 08:57:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260081 - stable/10/sys/vm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 08:57:55 -0000 Author: kib Date: Mon Dec 30 08:57:54 2013 New Revision: 260081 URL: http://svnweb.freebsd.org/changeset/base/260081 Log: MFC r259951: Do not coalesce stack entry. Pass MAP_STACK_GROWS_DOWN and MAP_STACK_GROWS_UP flags to vm_map_insert() from vm_map_stack() Modified: stable/10/sys/vm/vm_map.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/vm/vm_map.c ============================================================================== --- stable/10/sys/vm/vm_map.c Mon Dec 30 08:36:17 2013 (r260080) +++ stable/10/sys/vm/vm_map.c Mon Dec 30 08:57:54 2013 (r260081) @@ -1207,6 +1207,7 @@ charged: } else if ((prev_entry != &map->header) && (prev_entry->eflags == protoeflags) && + (cow & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP)) == 0 && (prev_entry->end == start) && (prev_entry->wired_count == 0) && (prev_entry->cred == cred || @@ -3339,7 +3340,6 @@ vm_map_stack(vm_map_t map, vm_offset_t a * NOTE: We explicitly allow bi-directional stacks. */ orient = cow & (MAP_STACK_GROWS_DOWN|MAP_STACK_GROWS_UP); - cow &= ~orient; KASSERT(orient != 0, ("No stack grow direction")); if (addrbos < vm_map_min(map) || From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 13:05:21 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 97A0E99; Mon, 30 Dec 2013 13:05:21 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 80B801A9B; Mon, 30 Dec 2013 13:05:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBUD5LBb030793; Mon, 30 Dec 2013 13:05:21 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBUD5JxO030781; Mon, 30 Dec 2013 13:05:19 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201312301305.rBUD5JxO030781@svn.freebsd.org> From: Sergey Kandaurov Date: Mon, 30 Dec 2013 13:05:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260084 - in stable/10/share/man: man5 man7 man8 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 13:05:21 -0000 Author: pluknet Date: Mon Dec 30 13:05:19 2013 New Revision: 260084 URL: http://svnweb.freebsd.org/changeset/base/260084 Log: MFC r259879: Clean up manual pages after BIND removal. Modified: stable/10/share/man/man5/hosts.5 stable/10/share/man/man5/hosts.equiv.5 stable/10/share/man/man5/nsswitch.conf.5 stable/10/share/man/man5/periodic.conf.5 stable/10/share/man/man5/rc.conf.5 stable/10/share/man/man5/resolver.5 stable/10/share/man/man7/hier.7 stable/10/share/man/man7/hostname.7 stable/10/share/man/man7/security.7 stable/10/share/man/man8/rc.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man5/hosts.5 ============================================================================== --- stable/10/share/man/man5/hosts.5 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man5/hosts.5 Mon Dec 30 13:05:19 2013 (r260084) @@ -32,7 +32,7 @@ .\" @(#)hosts.5 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd December 11, 1993 +.Dd December 25, 2013 .Dt HOSTS 5 .Os .Sh NAME @@ -60,9 +60,7 @@ A ``#'' indicates the beginning of a comment; characters up to the end of the line are not interpreted by routines which search the file. .Pp -When using the name server -.Xr named 8 , -this file provides a backup used when the name server +This file provides a backup used when the name server is not running. For the name server, it is suggested that only a few addresses be included in this file. @@ -104,8 +102,7 @@ file resides in .Sh SEE ALSO .Xr gethostbyname 3 , .Xr nsswitch.conf 5 , -.Xr ifconfig 8 , -.Xr named 8 +.Xr ifconfig 8 .Rs .%T "Name Server Operations Guide for BIND" .Re Modified: stable/10/share/man/man5/hosts.equiv.5 ============================================================================== --- stable/10/share/man/man5/hosts.equiv.5 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man5/hosts.equiv.5 Mon Dec 30 13:05:19 2013 (r260084) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 8, 2007 +.Dd December 25, 2013 .Dt HOSTS.EQUIV 5 .Os .Sh NAME @@ -139,7 +139,6 @@ except users from netgroup .Xr ruserok 3 , .Xr netgroup 5 , .Xr ifconfig 8 , -.Xr named 8 , .Xr yp 8 .Sh BUGS This manual page is incomplete. Modified: stable/10/share/man/man5/nsswitch.conf.5 ============================================================================== --- stable/10/share/man/man5/nsswitch.conf.5 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man5/nsswitch.conf.5 Mon Dec 30 13:05:19 2013 (r260084) @@ -33,7 +33,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 4, 2010 +.Dd December 25, 2013 .Dt NSSWITCH.CONF 5 .Os .Sh NAME @@ -362,7 +362,6 @@ databases. .Xr nscd.conf 5 , .Xr resolv.conf 5 , .Xr nscd 8 , -.Xr named 8 , .Xr ypbind 8 .Sh HISTORY The Modified: stable/10/share/man/man5/periodic.conf.5 ============================================================================== --- stable/10/share/man/man5/periodic.conf.5 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man5/periodic.conf.5 Mon Dec 30 13:05:19 2013 (r260084) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 30, 2012 +.Dd December 25, 2013 .Dt PERIODIC.CONF 5 .Os .Sh NAME @@ -493,17 +493,6 @@ for the previous day. .Pq Vt num Set to the number of maillog files that should be checked for yesterday's mail rejects. -.It Va daily_status_named_enable -.Pq Vt bool -Set to -.Dq Li YES -if you want to summarise denied zone transfers (AXFR and IXFR) -for the previous day. -.It Va daily_status_named_usedns -.Pq Vt bool -Set to -.Dq Li YES -if you want to enable reverse DNS lookups. .It Va daily_status_ntpd .Pq Vt bool Set to Modified: stable/10/share/man/man5/rc.conf.5 ============================================================================== --- stable/10/share/man/man5/rc.conf.5 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man5/rc.conf.5 Mon Dec 30 13:05:19 2013 (r260084) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 19, 2013 +.Dd December 25, 2013 .Dt RC.CONF 5 .Os .Sh NAME @@ -2048,85 +2048,6 @@ If set to run the .Xr unbound 8 daemon as a local caching resolver. -.It Va named_enable -.Pq Vt bool -If set to -.Dq Li YES , -run the -.Xr named 8 -daemon. -.It Va named_program -.Pq Vt str -Path to -.Xr named 8 -(default -.Pa /usr/sbin/named ) . -.It Va named_conf -.Pq Vt str -Path to -.Xr named 8 -configuration file, (default -.Pa /etc/namedb/named.conf ) . -.It Va named_flags -.Pq Vt str -If -.Va named_enable -is set to -.Dq Li YES , -these are the flags to pass to -.Xr named 8 . -.It Va named_uid -.Pq Vt str -The user that the -.Xr named 8 -process should be run as. -.It Va named_chrootdir -.Pq Vt str -The root directory for a name server run in a -.Xr chroot 8 -environment (default -.Pa /var/named ) . -If left empty -.Xr named 8 -will not be run in a -.Xr chroot 8 -environment. -.It Va named_chroot_autoupdate -.Pq Vt bool -Set to -.Dq Li NO -to disable automatic update of the -.Xr chroot 8 -environment. -.It Va named_symlink_enable -.Pq Vt bool -Set to -.Dq Li NO -to disable symlinking of -daemon's PID file -into the -.Xr chroot 8 -environment. -.It Va named_wait -.Pq Vt bool -Set to have -.Pa /etc/rc.d/named -loop until working name service is established. -.It Va named_wait_host -.Pq Vt str -Name of host to lookup for the named_wait option. -(Default localhost) -.It Va named_auto_forward -.Pq Vt bool -Set to enable automatic creation of a forwarder -configuration file derived from -.Pa /etc/resolv.conf . -.It Va named_auto_forward_only -.Pq Vt bool -Set to change the default forwarder configuration from -.Dq forward first -to -.Dq forward only . .It Va kerberos5_server_enable .Pq Vt bool Set to @@ -4559,7 +4480,6 @@ The default is 30. .Xr mountd 8 , .Xr moused 8 , .Xr mrouted 8 , -.Xr named 8 , .Xr newfs 8 , .Xr newsyslog 8 , .Xr nfsd 8 , Modified: stable/10/share/man/man5/resolver.5 ============================================================================== --- stable/10/share/man/man5/resolver.5 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man5/resolver.5 Mon Dec 30 13:05:19 2013 (r260084) @@ -32,7 +32,7 @@ .\" @(#)resolver.5 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd September 9, 2004 +.Dd December 25, 2013 .Dt RESOLVER 5 .Os .Sh NAME @@ -210,8 +210,7 @@ resides in .Sh SEE ALSO .Xr gethostbyname 3 , .Xr resolver 3 , -.Xr hostname 7 , -.Xr named 8 +.Xr hostname 7 .Rs .%T "Name Server Operations Guide for BIND" .Re Modified: stable/10/share/man/man7/hier.7 ============================================================================== --- stable/10/share/man/man7/hier.7 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man7/hier.7 Mon Dec 30 13:05:19 2013 (r260084) @@ -32,7 +32,7 @@ .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd October 29, 2013 +.Dd December 25, 2013 .Dt HIER 7 .Os .Sh NAME @@ -104,10 +104,6 @@ Sendmail control files mtree configuration files; see .Xr mtree 8 -.It Pa namedb/ -named configuration files; -see -.Xr named 8 .It Pa pam.d/ configuration files for the Pluggable Authentication Modules (PAM) library @@ -804,11 +800,6 @@ system information files describing vari system since it was booted .Pp .Bl -tag -width Fl -compact -.It Pa named/ -writable by the -.Dq bind -user; see -.Xr named 8 .It Pa ppp/ writable by the .Dq network Modified: stable/10/share/man/man7/hostname.7 ============================================================================== --- stable/10/share/man/man7/hostname.7 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man7/hostname.7 Mon Dec 30 13:05:19 2013 (r260084) @@ -32,7 +32,7 @@ .\" @(#)hostname.7 8.2 (Berkeley) 12/30/93 .\" $FreeBSD$ .\" -.Dd December 30, 1993 +.Dd December 25, 2013 .Dt HOSTNAME 7 .Os .Sh NAME @@ -86,8 +86,7 @@ by a system-wide configuration file (see .Sh SEE ALSO .Xr gethostbyname 3 , .Xr resolver 5 , -.Xr mailaddr 7 , -.Xr named 8 +.Xr mailaddr 7 .Sh HISTORY .Nm Hostname appeared in Modified: stable/10/share/man/man7/security.7 ============================================================================== --- stable/10/share/man/man7/security.7 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man7/security.7 Mon Dec 30 13:05:19 2013 (r260084) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 8, 2012 +.Dd December 25, 2013 .Dt SECURITY 7 .Os .Sh NAME @@ -350,13 +350,6 @@ now defaults to running and .Xr fingerd 8 in a sandbox. -Another program which may be a candidate for running in a sandbox is -.Xr named 8 . -The default -.Pa rc.conf -includes the arguments necessary to run -.Xr named 8 -in a sandbox in a commented-out form. Depending on whether you are installing a new system or upgrading an existing system, the special user accounts used by these sandboxes may not be installed. @@ -825,8 +818,6 @@ ports A, B, C, D, and M-Z This way you can firewall off all of your low ports except for certain specific services such as -.Xr named 8 -(if you are primary for a zone), .Xr talkd 8 , .Xr sendmail 8 , and other internet-accessible services. Modified: stable/10/share/man/man8/rc.8 ============================================================================== --- stable/10/share/man/man8/rc.8 Mon Dec 30 12:18:06 2013 (r260083) +++ stable/10/share/man/man8/rc.8 Mon Dec 30 13:05:19 2013 (r260084) @@ -35,7 +35,7 @@ .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd October 19, 2013 +.Dd December 25, 2013 .Dt RC 8 .Os .Sh NAME @@ -242,7 +242,7 @@ network configuration. .It Pa SERVERS Ensure basic services exist for services that start early (such as -.Pa named ) , +.Pa nisdomain ) , because they are required by .Pa DAEMON below. From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 14:09:04 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B41E0FD2; Mon, 30 Dec 2013 14:09:04 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9F1F21F12; Mon, 30 Dec 2013 14:09:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBUE94Qu054011; Mon, 30 Dec 2013 14:09:04 GMT (envelope-from jmmv@svn.freebsd.org) Received: (from jmmv@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBUE94BE054010; Mon, 30 Dec 2013 14:09:04 GMT (envelope-from jmmv@svn.freebsd.org) Message-Id: <201312301409.rBUE94BE054010@svn.freebsd.org> From: Julio Merino Date: Mon, 30 Dec 2013 14:09:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260085 - stable/10/tools/build/mk X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 14:09:04 -0000 Author: jmmv Date: Mon Dec 30 14:09:04 2013 New Revision: 260085 URL: http://svnweb.freebsd.org/changeset/base/260085 Log: Fix 'make check-old' warnings when WITHOUT_TESTS is set. This is a MFC of r258025 and r257940, both of which resolve issues with dynamically setting the list of obsolete files based on the contents of /usr/tests. Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/10/ (props changed) Modified: stable/10/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/10/tools/build/mk/OptionalObsoleteFiles.inc Mon Dec 30 13:05:19 2013 (r260084) +++ stable/10/tools/build/mk/OptionalObsoleteFiles.inc Mon Dec 30 14:09:04 2013 (r260085) @@ -4143,11 +4143,13 @@ OLD_FILES+=usr/share/man/man4/atf-test-c OLD_FILES+=usr/share/mk/atf.test.mk # Test suite. -TESTS_DIRS!=find ${DESTDIR}/usr/tests -type d | sed -e 's,^${DESTDIR}/,,' +. if(exists(${DESTDIR}/usr/tests/)) +TESTS_DIRS!=find ${DESTDIR}/usr/tests -type d | sed -e 's,^${DESTDIR}/,,'; echo OLD_DIRS+=${TESTS_DIRS} -TESTS_FILES!=find ${DESTDIR}/usr/tests \! -type d | sed -e 's,^${DESTDIR}/,,' +TESTS_FILES!=find ${DESTDIR}/usr/tests \! -type d | sed -e 's,^${DESTDIR}/,,'; echo OLD_FILES+=${TESTS_FILES} -.endif +. endif +.endif # Test suite. #.if ${MK_TOOLCHAIN} == no # to be filled in From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 20:15:55 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2F68D16E; Mon, 30 Dec 2013 20:15:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BFCF81ACF; Mon, 30 Dec 2013 20:15:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBUKFsdd099713; Mon, 30 Dec 2013 20:15:54 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBUKFo7n099686; Mon, 30 Dec 2013 20:15:50 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201312302015.rBUKFo7n099686@svn.freebsd.org> From: Dimitry Andric Date: Mon, 30 Dec 2013 20:15:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260096 - in stable: 10/gnu/lib/csu 10/gnu/lib/libgcc 10/gnu/lib/libstdc++ 10/gnu/lib/libsupc++ 10/lib/atf/libatf-c/tests 10/lib/libstand 10/share/mk 10/sys/boot/ficl 10/sys/boot/i386 1... X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 20:15:55 -0000 Author: dim Date: Mon Dec 30 20:15:46 2013 New Revision: 260096 URL: http://svnweb.freebsd.org/changeset/base/260096 Log: MFC r257532 (by adrian): Fix this build for clang. MFC r259730: To avoid having to explicitly test COMPILER_TYPE for setting clang-specific or gcc-specific flags, introduce the following new variables for use in Makefiles: CFLAGS.clang CFLAGS.gcc CXXFLAGS.clang CXXFLAGS.gcc In bsd.sys.mk, these get appended to the regular CFLAGS or CXXFLAGS for the right compiler. MFC r259913: For libstand and sys/boot, split off gcc-only flags into CFLAGS.gcc. MFC r259927: Fix pc98 build, by also forcing COMPILER_TYPE in sys/boot/pc98/boot2's Makefile. Pointy hat to: dim Modified: stable/10/gnu/lib/csu/Makefile stable/10/gnu/lib/libgcc/Makefile stable/10/gnu/lib/libstdc++/Makefile stable/10/gnu/lib/libsupc++/Makefile stable/10/lib/atf/libatf-c/tests/Makefile stable/10/lib/libstand/Makefile stable/10/share/mk/bsd.sys.mk stable/10/sys/boot/ficl/Makefile stable/10/sys/boot/i386/Makefile.inc stable/10/sys/boot/i386/boot2/Makefile stable/10/sys/boot/pc98/Makefile.inc stable/10/sys/boot/pc98/boot2/Makefile stable/10/sys/boot/usb/Makefile stable/10/sys/boot/usb/Makefile.test stable/10/sys/boot/userboot/ficl/Makefile stable/10/sys/boot/userboot/libstand/Makefile stable/10/sys/boot/zfs/Makefile stable/10/sys/conf/Makefile.arm stable/10/tools/tools/ath/athstats/Makefile stable/10/tools/tools/net80211/wlanstats/Makefile stable/10/usr.bin/mkcsmapper/Makefile.inc Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/9/gnu/lib/csu/Makefile stable/9/lib/libstand/Makefile stable/9/share/mk/bsd.sys.mk (contents, props changed) stable/9/sys/boot/ficl/Makefile stable/9/sys/boot/i386/Makefile.inc stable/9/sys/boot/i386/boot2/Makefile stable/9/sys/boot/pc98/Makefile.inc stable/9/sys/boot/pc98/boot2/Makefile stable/9/sys/boot/userboot/ficl/Makefile stable/9/sys/boot/userboot/libstand/Makefile stable/9/sys/boot/zfs/Makefile stable/9/tools/tools/ath/athstats/Makefile stable/9/tools/tools/net80211/wlanstats/Makefile stable/9/usr.bin/mkcsmapper/Makefile.inc Directory Properties: stable/9/gnu/lib/csu/ (props changed) stable/9/lib/libstand/ (props changed) stable/9/share/mk/ (props changed) stable/9/sys/ (props changed) stable/9/usr.bin/mkcsmapper/ (props changed) Modified: stable/10/gnu/lib/csu/Makefile ============================================================================== --- stable/10/gnu/lib/csu/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/gnu/lib/csu/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -15,9 +15,7 @@ OBJS= crtbegin.o crtend.o crtbeginT.o SOBJS= crtbeginS.o crtendS.o CSTD?= gnu89 CFLAGS+= -DIN_GCC -DHAVE_LD_EH_FRAME_HDR -DDT_CONFIG -D__GLIBC__=3 -.if ${COMPILER_TYPE} == "gcc" -CFLAGS+= -finhibit-size-directive -fno-toplevel-reorder -.endif +CFLAGS.gcc+= -finhibit-size-directive -fno-toplevel-reorder CFLAGS+= -fno-inline-functions -fno-exceptions \ -fno-zero-initialized-in-bss -fno-asynchronous-unwind-tables \ -fno-omit-frame-pointer Modified: stable/10/gnu/lib/libgcc/Makefile ============================================================================== --- stable/10/gnu/lib/libgcc/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/gnu/lib/libgcc/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -112,9 +112,7 @@ LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udi .if ${TARGET_CPUARCH} == "arm" # from config/arm/t-strongarm-elf CFLAGS+= -Dinhibit_libc -fno-inline -.if ${COMPILER_TYPE} == "clang" -CFLAGS+= -fheinous-gnu-extensions -.endif +CFLAGS.clang+= -fheinous-gnu-extensions LIB1ASMSRC = lib1funcs.asm LIB1ASMFUNCS = _dvmd_tls _bb_init_func Modified: stable/10/gnu/lib/libstdc++/Makefile ============================================================================== --- stable/10/gnu/lib/libstdc++/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/gnu/lib/libstdc++/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -637,6 +637,4 @@ CLEANFILES+= ${VERSION_MAP} # Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98. CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]} -.if ${COMPILER_TYPE} == "clang" -CXXFLAGS+= -stdlib=libstdc++ -.endif +CXXFLAGS.clang+= -stdlib=libstdc++ Modified: stable/10/gnu/lib/libsupc++/Makefile ============================================================================== --- stable/10/gnu/lib/libsupc++/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/gnu/lib/libsupc++/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -57,6 +57,4 @@ VERSION_MAP= ${.CURDIR}/Version.map # Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98. CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]} -.if ${COMPILER_TYPE} == "clang" -CXXFLAGS+= -stdlib=libstdc++ -.endif +CXXFLAGS.clang+= -stdlib=libstdc++ Modified: stable/10/lib/atf/libatf-c/tests/Makefile ============================================================================== --- stable/10/lib/atf/libatf-c/tests/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/lib/atf/libatf-c/tests/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -10,12 +10,10 @@ ATF= ${.CURDIR:H:H:H:H}/contrib/atf CFLAGS+= -I${ATF} -.if ${COMPILER_TYPE} == "clang" # macros_test.c contains a double 'const const' which will be gone with # the import of atf-0.18. # TODO(jmmv): Remove this workaround once we do that update. -CFLAGS+= -Wno-duplicate-decl-specifier -.endif +CFLAGS.clang+= -Wno-duplicate-decl-specifier FILESDIR= ${TESTSDIR} FILES= macros_h_test.c Modified: stable/10/lib/libstand/Makefile ============================================================================== --- stable/10/lib/libstand/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/lib/libstand/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -21,7 +21,7 @@ CFLAGS+= -ffreestanding -Wformat CFLAGS+= -I${.CURDIR} .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float .endif .if ${MACHINE} == "pc98" Modified: stable/10/share/mk/bsd.sys.mk ============================================================================== --- stable/10/share/mk/bsd.sys.mk Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/share/mk/bsd.sys.mk Mon Dec 30 20:15:46 2013 (r260096) @@ -114,12 +114,19 @@ CWARNFLAGS+= -Wno-format CWARNFLAGS+= -Wno-unknown-pragmas .endif # IGNORE_PRAGMA -.if ${COMPILER_TYPE} == "clang" && !defined(EARLY_BUILD) +.if !defined(EARLY_BUILD) +.if ${COMPILER_TYPE} == "clang" CLANG_NO_IAS= -no-integrated-as CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\ -mllvm -enable-load-pre=false -mllvm -simplifycfg-dup-ret CFLAGS+= -Qunused-arguments +CFLAGS+= ${CFLAGS.clang} +CXXFLAGS+= ${CXXFLAGS.clang} +.else # !CLANG +CFLAGS+= ${CFLAGS.gcc} +CXXFLAGS+= ${CXXFLAGS.gcc} .endif # CLANG +.endif # !EARLY_BUILD .if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \ ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" Modified: stable/10/sys/boot/ficl/Makefile ============================================================================== --- stable/10/sys/boot/ficl/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/ficl/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -17,7 +17,7 @@ CFLAGS+= -ffreestanding .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" .if !defined(FICL64) CFLAGS+= -march=i386 -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 .endif CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float .endif Modified: stable/10/sys/boot/i386/Makefile.inc ============================================================================== --- stable/10/sys/boot/i386/Makefile.inc Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/i386/Makefile.inc Mon Dec 30 20:15:46 2013 (r260096) @@ -5,8 +5,9 @@ BINDIR?= /boot LOADER_ADDRESS?=0x200000 -CFLAGS+= -march=i386 -ffreestanding -mpreferred-stack-boundary=2 \ - -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float +CFLAGS+= -march=i386 -ffreestanding +CFLAGS.gcc+= -mpreferred-stack-boundary=2 +CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float LDFLAGS+= -nostdlib .if ${MACHINE_CPUARCH} == "amd64" Modified: stable/10/sys/boot/i386/boot2/Makefile ============================================================================== --- stable/10/sys/boot/i386/boot2/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/i386/boot2/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -23,10 +23,7 @@ BOOT2_UFS?= UFS1_AND_UFS2 #BOOT2_UFS?= UFS1_ONLY CFLAGS= -Os \ - -fno-guess-branch-probability \ -fomit-frame-pointer \ - -fno-unit-at-a-time \ - -mno-align-long-strings \ -mrtd \ -mregparm=3 \ -DUSE_XREAD \ @@ -43,6 +40,10 @@ CFLAGS= -Os \ -Winline --param max-inline-insns-single=100 \ ${CLANG_OPT_SMALL} +CFLAGS.gcc+= -fno-guess-branch-probability \ + -fno-unit-at-a-time \ + -mno-align-long-strings \ + LDFLAGS=-static -N --gc-sections # Pick up ../Makefile.inc early. Modified: stable/10/sys/boot/pc98/Makefile.inc ============================================================================== --- stable/10/sys/boot/pc98/Makefile.inc Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/pc98/Makefile.inc Mon Dec 30 20:15:46 2013 (r260096) @@ -5,8 +5,9 @@ BINDIR?= /boot LOADER_ADDRESS?=0x200000 -CFLAGS+= -march=i386 -ffreestanding -mpreferred-stack-boundary=2 \ - -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float +CFLAGS+= -march=i386 -ffreestanding +CFLAGS.gcc+= -mpreferred-stack-boundary=2 +CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float CFLAGS+= -Os -DPC98 LDFLAGS+= -nostdlib Modified: stable/10/sys/boot/pc98/boot2/Makefile ============================================================================== --- stable/10/sys/boot/pc98/boot2/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/pc98/boot2/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -4,6 +4,7 @@ # XXX: clang can compile the boot code just fine, but boot2 gets too big CC:= gcc +COMPILER_TYPE:= gcc FILES= boot boot1 boot2 Modified: stable/10/sys/boot/usb/Makefile ============================================================================== --- stable/10/sys/boot/usb/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/usb/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -53,7 +53,7 @@ CFLAGS+= -g .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -march=i386 -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 .endif .if ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -m32 Modified: stable/10/sys/boot/usb/Makefile.test ============================================================================== --- stable/10/sys/boot/usb/Makefile.test Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/usb/Makefile.test Mon Dec 30 20:15:46 2013 (r260096) @@ -40,7 +40,7 @@ CFLAGS+= -g .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -march=i386 -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 .endif .if ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -m32 Modified: stable/10/sys/boot/userboot/ficl/Makefile ============================================================================== --- stable/10/sys/boot/userboot/ficl/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/userboot/ficl/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -16,7 +16,7 @@ CFLAGS+= -ffreestanding -fPIC CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 .endif .if ${MACHINE_CPUARCH} == "i386" -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 CFLAGS+= -mno-sse3 .endif .if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" Modified: stable/10/sys/boot/userboot/libstand/Makefile ============================================================================== --- stable/10/sys/boot/userboot/libstand/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/userboot/libstand/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -28,7 +28,7 @@ CFLAGS+= -I${.CURDIR}/../../../../lib/li CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 .endif .if ${MACHINE_CPUARCH} == "i386" -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 CFLAGS+= -mno-sse3 .endif .if ${MACHINE} == "pc98" Modified: stable/10/sys/boot/zfs/Makefile ============================================================================== --- stable/10/sys/boot/zfs/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/boot/zfs/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -13,7 +13,7 @@ CFLAGS+= -I${.CURDIR}/../../cddl/boot/zf CFLAGS+= -ffreestanding .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" CFLAGS+= -march=i386 -CFLAGS+= -mpreferred-stack-boundary=2 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float .endif .if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" Modified: stable/10/sys/conf/Makefile.arm ============================================================================== --- stable/10/sys/conf/Makefile.arm Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/sys/conf/Makefile.arm Mon Dec 30 20:15:46 2013 (r260096) @@ -39,20 +39,16 @@ SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscri STRIP_FLAGS = -S .endif -.if ${COMPILER_TYPE} != "clang" -CFLAGS += -mno-thumb-interwork -.endif +CFLAGS.gcc += -mno-thumb-interwork .if empty(DDB_ENABLED) -.if defined(WITHOUT_ARM_EABI) && ${COMPILER_TYPE} != "clang" -CFLAGS += -mno-apcs-frame +.if defined(WITHOUT_ARM_EABI) +CFLAGS.gcc += -mno-apcs-frame .endif .elif !defined(WITHOUT_ARM_EABI) CFLAGS += -funwind-tables -.if ${COMPILER_TYPE} == "clang" # clang requires us to tell it to emit assembly with unwind information -CFLAGS += -mllvm -arm-enable-ehabi -.endif +CFLAGS.clang += -mllvm -arm-enable-ehabi .endif SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader ${LDFLAGS} \ Modified: stable/10/tools/tools/ath/athstats/Makefile ============================================================================== --- stable/10/tools/tools/ath/athstats/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/tools/tools/ath/athstats/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -1,12 +1,16 @@ # $FreeBSD$ +NO_MAN=1 + +.include + .PATH: ${.CURDIR}/../../../../sys/dev/ath/ath_hal PROG= athstats # Because of a clang preprocessor parser limitation causing this # to not compile, use gcc for now. -CC= gcc +#CC= gcc SRCS= main.c statfoo.c athstats.c opt_ah.h ah_osdep.h @@ -17,6 +21,8 @@ CLEANFILES+= opt_ah.h CFLAGS+=-DATH_SUPPORT_ANI CFLAGS+=-DATH_SUPPORT_TDMA +CFLAGS.clang+= -fbracket-depth=512 + opt_ah.h: echo "#define AH_DEBUG 1" > opt_ah.h echo "#define AH_DEBUG_COUNTRY 1" >> opt_ah.h Modified: stable/10/tools/tools/net80211/wlanstats/Makefile ============================================================================== --- stable/10/tools/tools/net80211/wlanstats/Makefile Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/tools/tools/net80211/wlanstats/Makefile Mon Dec 30 20:15:46 2013 (r260096) @@ -7,8 +7,6 @@ BINDIR= /usr/local/bin NO_MAN= SRCS= statfoo.c wlanstats.c main.c -.if ${COMPILER_TYPE} == "clang" -CFLAGS+= -fbracket-depth=512 -.endif +CFLAGS.clang+= -fbracket-depth=512 .include Modified: stable/10/usr.bin/mkcsmapper/Makefile.inc ============================================================================== --- stable/10/usr.bin/mkcsmapper/Makefile.inc Mon Dec 30 19:05:50 2013 (r260095) +++ stable/10/usr.bin/mkcsmapper/Makefile.inc Mon Dec 30 20:15:46 2013 (r260096) @@ -6,6 +6,4 @@ SRCS+= lex.l yacc.y CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../mkcsmapper \ -I${.CURDIR}/../../lib/libc/iconv \ -I${.CURDIR}/../../lib/libiconv_modules/mapper_std -.if ${COMPILER_TYPE} == "gcc" -CFLAGS+= --param max-inline-insns-single=64 -.endif +CFLAGS.gcc+= --param max-inline-insns-single=64 From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 20:27:59 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 569A48CA; Mon, 30 Dec 2013 20:27:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 28B811CB8; Mon, 30 Dec 2013 20:27:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBUKRx50003848; Mon, 30 Dec 2013 20:27:59 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBUKRxGi003847; Mon, 30 Dec 2013 20:27:59 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201312302027.rBUKRxGi003847@svn.freebsd.org> From: Dimitry Andric Date: Mon, 30 Dec 2013 20:27:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260100 - in stable: 10/sys/dev/drm 9/sys/dev/drm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 20:27:59 -0000 Author: dim Date: Mon Dec 30 20:27:58 2013 New Revision: 260100 URL: http://svnweb.freebsd.org/changeset/base/260100 Log: MFC r259902: In sys/dev/drm/mach64_dma.c, remove static function mach64_set_dma_eol(), which has never been used, even by upstream, since its initial upstream commit (see http://cgit.freedesktop.org/mesa/drm/commit/?id=873e1c4d ) Modified: stable/10/sys/dev/drm/mach64_dma.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/9/sys/dev/drm/mach64_dma.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/10/sys/dev/drm/mach64_dma.c ============================================================================== --- stable/10/sys/dev/drm/mach64_dma.c Mon Dec 30 20:24:05 2013 (r260099) +++ stable/10/sys/dev/drm/mach64_dma.c Mon Dec 30 20:27:58 2013 (r260100) @@ -559,54 +559,6 @@ void mach64_dump_ring_info(drm_mach64_pr /*@{*/ /** - * Add the end mark to the ring's new tail position. - * - * The bus master engine will keep processing the DMA buffers listed in the ring - * until it finds this mark, making it stop. - * - * \sa mach64_clear_dma_eol - */ -static __inline__ void mach64_set_dma_eol(volatile u32 *addr) -{ -#if defined(__i386__) - int nr = 31; - - /* Taken from include/asm-i386/bitops.h linux header */ - __asm__ __volatile__("lock;" "btsl %1,%0":"=m"(*addr) - :"Ir"(nr)); -#elif defined(__powerpc__) - u32 old; - u32 mask = cpu_to_le32(MACH64_DMA_EOL); - - /* Taken from the include/asm-ppc/bitops.h linux header */ - __asm__ __volatile__("\n\ -1: lwarx %0,0,%3 \n\ - or %0,%0,%2 \n\ - stwcx. %0,0,%3 \n\ - bne- 1b":"=&r"(old), "=m"(*addr) - :"r"(mask), "r"(addr), "m"(*addr) - :"cc"); -#elif defined(__alpha__) - u32 temp; - u32 mask = MACH64_DMA_EOL; - - /* Taken from the include/asm-alpha/bitops.h linux header */ - __asm__ __volatile__("1: ldl_l %0,%3\n" - " bis %0,%2,%0\n" - " stl_c %0,%1\n" - " beq %0,2f\n" - ".subsection 2\n" - "2: br 1b\n" - ".previous":"=&r"(temp), "=m"(*addr) - :"Ir"(mask), "m"(*addr)); -#else - u32 mask = cpu_to_le32(MACH64_DMA_EOL); - - *addr |= mask; -#endif -} - -/** * Remove the end mark from the ring's old tail position. * * It should be called after calling mach64_set_dma_eol to mark the ring's new From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 20:32:27 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C295DC50; Mon, 30 Dec 2013 20:32:27 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AE5C31D39; Mon, 30 Dec 2013 20:32:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBUKWRaK007060; Mon, 30 Dec 2013 20:32:27 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBUKWRP5007059; Mon, 30 Dec 2013 20:32:27 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201312302032.rBUKWRP5007059@svn.freebsd.org> From: Dimitry Andric Date: Mon, 30 Dec 2013 20:32:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260101 - stable/10/sys/dev/bxe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 20:32:27 -0000 Author: dim Date: Mon Dec 30 20:32:27 2013 New Revision: 260101 URL: http://svnweb.freebsd.org/changeset/base/260101 Log: MFC r259928: In sys/dev/bxe/bxe.c, remove static function bxe_has_tx_work_unload(), which has never been used. Reviewed by: edavis Modified: stable/10/sys/dev/bxe/bxe.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/bxe/bxe.c ============================================================================== --- stable/10/sys/dev/bxe/bxe.c Mon Dec 30 20:27:58 2013 (r260100) +++ stable/10/sys/dev/bxe/bxe.c Mon Dec 30 20:32:27 2013 (r260101) @@ -2745,13 +2745,6 @@ bxe_drv_pulse(struct bxe_softc *sc) sc->fw_drv_pulse_wr_seq); } -static inline int -bxe_has_tx_work_unload(struct bxe_fastpath *fp) -{ - mb(); /* consumer and producer can change */ - return (fp->tx_pkt_prod != fp->tx_pkt_cons); -} - static inline uint16_t bxe_tx_avail(struct bxe_softc *sc, struct bxe_fastpath *fp) From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 21:17:21 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8D70AA83; Mon, 30 Dec 2013 21:17:21 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6CFB81163; Mon, 30 Dec 2013 21:17:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBULHLaw026528; Mon, 30 Dec 2013 21:17:21 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBULHKFO026523; Mon, 30 Dec 2013 21:17:20 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201312302117.rBULHKFO026523@svn.freebsd.org> From: Rick Macklem Date: Mon, 30 Dec 2013 21:17:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260107 - in stable/10/sys: fs/nfsclient nfsclient X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 21:17:21 -0000 Author: rmacklem Date: Mon Dec 30 21:17:20 2013 New Revision: 260107 URL: http://svnweb.freebsd.org/changeset/base/260107 Log: MFC: r259084 For software builds, the NFS client does many small synchronous (with FILE_SYNC) writes because non-contiguous byte ranges in the same buffer cache block are being written. This patch adds a new mount option "noncontigwr" which allows the non-contiguous byte ranges to be combined, with the dirty byte range becoming the superset of the bytes that are dirty, if the file has not been file locked. This reduces the number of writes significantly for software builds. The only case where this change might break existing applications is where an application is writing non-overlapping byte ranges within the same buffer cache block of a file from multiple clients concurrently. Since such an application would normally do file locking on the file, avoiding the byte range merge for files that have been file locked should be sufficient for most (maybe all?) cases. Modified: stable/10/sys/fs/nfsclient/nfs_clbio.c stable/10/sys/fs/nfsclient/nfs_clvfsops.c stable/10/sys/fs/nfsclient/nfs_clvnops.c stable/10/sys/fs/nfsclient/nfsnode.h stable/10/sys/nfsclient/nfsargs.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfsclient/nfs_clbio.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clbio.c Mon Dec 30 21:06:08 2013 (r260106) +++ stable/10/sys/fs/nfsclient/nfs_clbio.c Mon Dec 30 21:17:20 2013 (r260107) @@ -874,7 +874,7 @@ ncl_write(struct vop_write_args *ap) struct vattr vattr; struct nfsmount *nmp = VFSTONFS(vp->v_mount); daddr_t lbn; - int bcount; + int bcount, noncontig_write, obcount; int bp_cached, n, on, error = 0, error1; size_t orig_resid, local_resid; off_t orig_size, tmp_off; @@ -1037,7 +1037,15 @@ again: * unaligned buffer size. */ mtx_lock(&np->n_mtx); - if (uio->uio_offset == np->n_size && n) { + if ((np->n_flag & NHASBEENLOCKED) == 0 && + (nmp->nm_flag & NFSMNT_NONCONTIGWR) != 0) + noncontig_write = 1; + else + noncontig_write = 0; + if ((uio->uio_offset == np->n_size || + (noncontig_write != 0 && + lbn == (np->n_size / biosize) && + uio->uio_offset + n > np->n_size)) && n) { mtx_unlock(&np->n_mtx); /* * Get the buffer (in its pre-append state to maintain @@ -1045,8 +1053,8 @@ again: * nfsnode after we have locked the buffer to prevent * readers from reading garbage. */ - bcount = on; - bp = nfs_getcacheblk(vp, lbn, bcount, td); + obcount = np->n_size - (lbn * biosize); + bp = nfs_getcacheblk(vp, lbn, obcount, td); if (bp != NULL) { long save; @@ -1058,9 +1066,12 @@ again: mtx_unlock(&np->n_mtx); save = bp->b_flags & B_CACHE; - bcount += n; + bcount = on + n; allocbuf(bp, bcount); bp->b_flags |= save; + if (noncontig_write != 0 && on > obcount) + vfs_bio_bzero_buf(bp, obcount, on - + obcount); } } else { /* @@ -1159,19 +1170,23 @@ again: * area, just update the b_dirtyoff and b_dirtyend, * otherwise force a write rpc of the old dirty area. * + * If there has been a file lock applied to this file + * or vfs.nfs.old_noncontig_writing is set, do the following: * While it is possible to merge discontiguous writes due to * our having a B_CACHE buffer ( and thus valid read data * for the hole), we don't because it could lead to * significant cache coherency problems with multiple clients, * especially if locking is implemented later on. * - * As an optimization we could theoretically maintain - * a linked list of discontinuous areas, but we would still - * have to commit them separately so there isn't much - * advantage to it except perhaps a bit of asynchronization. + * If vfs.nfs.old_noncontig_writing is not set and there has + * not been file locking done on this file: + * Relax coherency a bit for the sake of performance and + * expand the current dirty region to contain the new + * write even if it means we mark some non-dirty data as + * dirty. */ - if (bp->b_dirtyend > 0 && + if (noncontig_write == 0 && bp->b_dirtyend > 0 && (on > bp->b_dirtyend || (on + n) < bp->b_dirtyoff)) { if (bwrite(bp) == EINTR) { error = EINTR; Modified: stable/10/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clvfsops.c Mon Dec 30 21:06:08 2013 (r260106) +++ stable/10/sys/fs/nfsclient/nfs_clvfsops.c Mon Dec 30 21:17:20 2013 (r260107) @@ -719,7 +719,8 @@ static const char *nfs_opts[] = { "from" "retrans", "acregmin", "acregmax", "acdirmin", "acdirmax", "resvport", "readahead", "hostname", "timeout", "addr", "fh", "nfsv3", "sec", "principal", "nfsv4", "gssname", "allgssname", "dirpath", "minorversion", - "nametimeo", "negnametimeo", "nocto", "pnfs", "wcommitsize", + "nametimeo", "negnametimeo", "nocto", "noncontigwr", "pnfs", + "wcommitsize", NULL }; /* @@ -840,6 +841,8 @@ nfs_mount(struct mount *mp) args.flags |= NFSMNT_ALLGSSNAME; if (vfs_getopt(mp->mnt_optnew, "nocto", NULL, NULL) == 0) args.flags |= NFSMNT_NOCTO; + if (vfs_getopt(mp->mnt_optnew, "noncontigwr", NULL, NULL) == 0) + args.flags |= NFSMNT_NONCONTIGWR; if (vfs_getopt(mp->mnt_optnew, "pnfs", NULL, NULL) == 0) args.flags |= NFSMNT_PNFS; if (vfs_getopt(mp->mnt_optnew, "readdirsize", (void **)&opt, NULL) == 0) { @@ -1792,6 +1795,8 @@ void nfscl_retopts(struct nfsmount *nmp, &blen); nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NOCTO) != 0, ",nocto", &buf, &blen); + nfscl_printopt(nmp, (nmp->nm_flag & NFSMNT_NONCONTIGWR) != 0, + ",noncontigwr", &buf, &blen); nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_NOLOCKD | NFSMNT_NFSV4)) == 0, ",lockd", &buf, &blen); nfscl_printopt(nmp, (nmp->nm_flag & (NFSMNT_NOLOCKD | NFSMNT_NFSV4)) == Modified: stable/10/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clvnops.c Mon Dec 30 21:06:08 2013 (r260106) +++ stable/10/sys/fs/nfsclient/nfs_clvnops.c Mon Dec 30 21:17:20 2013 (r260107) @@ -3079,6 +3079,10 @@ nfs_advlock(struct vop_advlock_args *ap) np->n_change = va.va_filerev; } } + /* Mark that a file lock has been acquired. */ + mtx_lock(&np->n_mtx); + np->n_flag |= NHASBEENLOCKED; + mtx_unlock(&np->n_mtx); } NFSVOPUNLOCK(vp, 0); return (0); @@ -3098,6 +3102,12 @@ nfs_advlock(struct vop_advlock_args *ap) error = ENOLCK; } } + if (error == 0 && ap->a_op == F_SETLK) { + /* Mark that a file lock has been acquired. */ + mtx_lock(&np->n_mtx); + np->n_flag |= NHASBEENLOCKED; + mtx_unlock(&np->n_mtx); + } } return (error); } Modified: stable/10/sys/fs/nfsclient/nfsnode.h ============================================================================== --- stable/10/sys/fs/nfsclient/nfsnode.h Mon Dec 30 21:06:08 2013 (r260106) +++ stable/10/sys/fs/nfsclient/nfsnode.h Mon Dec 30 21:17:20 2013 (r260107) @@ -157,6 +157,7 @@ struct nfsnode { #define NLOCKWANT 0x00010000 /* Want the sleep lock */ #define NNOLAYOUT 0x00020000 /* Can't get a layout for this file */ #define NWRITEOPENED 0x00040000 /* Has been opened for writing */ +#define NHASBEENLOCKED 0x00080000 /* Has been file locked. */ /* * Convert between nfsnode pointers and vnode pointers Modified: stable/10/sys/nfsclient/nfsargs.h ============================================================================== --- stable/10/sys/nfsclient/nfsargs.h Mon Dec 30 21:06:08 2013 (r260106) +++ stable/10/sys/nfsclient/nfsargs.h Mon Dec 30 21:17:20 2013 (r260107) @@ -99,5 +99,6 @@ struct nfs_args { #define NFSMNT_STRICT3530 0x10000000 /* Adhere strictly to RFC3530 */ #define NFSMNT_NOCTO 0x20000000 /* Don't flush attrcache on open */ #define NFSMNT_PNFS 0x40000000 /* Enable pNFS support */ +#define NFSMNT_NONCONTIGWR 0x80000000 /* Enable non-contiguous writes */ #endif From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 21:20:51 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DDBE0D04; Mon, 30 Dec 2013 21:20:51 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C8FD211DB; Mon, 30 Dec 2013 21:20:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBULKpGA029103; Mon, 30 Dec 2013 21:20:51 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBULKp9c029102; Mon, 30 Dec 2013 21:20:51 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201312302120.rBULKp9c029102@svn.freebsd.org> From: Rick Macklem Date: Mon, 30 Dec 2013 21:20:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260108 - stable/10/sbin/mount_nfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 21:20:51 -0000 Author: rmacklem Date: Mon Dec 30 21:20:51 2013 New Revision: 260108 URL: http://svnweb.freebsd.org/changeset/base/260108 Log: MFC: r259089 Document the noncontigwr NFS mount option. This is a content change. Modified: stable/10/sbin/mount_nfs/mount_nfs.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/mount_nfs/mount_nfs.8 ============================================================================== --- stable/10/sbin/mount_nfs/mount_nfs.8 Mon Dec 30 21:17:20 2013 (r260107) +++ stable/10/sbin/mount_nfs/mount_nfs.8 Mon Dec 30 21:20:51 2013 (r260108) @@ -28,7 +28,7 @@ .\" @(#)mount_nfs.8 8.3 (Berkeley) 3/29/95 .\" $FreeBSD$ .\" -.Dd July 8, 2013 +.Dd December 7, 2013 .Dt MOUNT_NFS 8 .Os .Sh NAME @@ -257,6 +257,19 @@ servers on the client. Note that this option will only be honored when performing the initial mount, it will be silently ignored if used while updating the mount options. +.It Cm noncontigwr +This mount option allows the NFS client to +combine non-contiguous byte ranges being written +such that the dirty byte range becomes a superset of the bytes +that are dirty. +This reduces the number of writes significantly for software +builds. +The merging of byte ranges isn't done if the file has been file +locked, since most applications modifying a file from multiple +clients will use file locking. +As such, this option could result in a corrupted file for the +rare case of an application modifying the file from multiple +clients concurrently without using file locking. .It Cm principal For the RPCSEC_GSS security flavors, such as krb5, krb5i and krb5p, this option sets the name of the host based principal name expected From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 21:24:42 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8CC58E72; Mon, 30 Dec 2013 21:24:42 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6C6541200; Mon, 30 Dec 2013 21:24:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBULOgu6029943; Mon, 30 Dec 2013 21:24:42 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBULOgDM029942; Mon, 30 Dec 2013 21:24:42 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201312302124.rBULOgDM029942@svn.freebsd.org> From: Rick Macklem Date: Mon, 30 Dec 2013 21:24:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260109 - stable/10/sys/fs/nfsclient X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 21:24:42 -0000 Author: rmacklem Date: Mon Dec 30 21:24:41 2013 New Revision: 260109 URL: http://svnweb.freebsd.org/changeset/base/260109 Log: MFC: r259771 The NFSv4.1 client didn't return NFSv4.1 specific error codes for the Getattr and Recall callbacks. This patch fixes it. Since the NFSv4.1 specific error codes would only happen for abnormal circumstances, this patch has little effect, in practice. Modified: stable/10/sys/fs/nfsclient/nfs_clstate.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfsclient/nfs_clstate.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clstate.c Mon Dec 30 21:20:51 2013 (r260108) +++ stable/10/sys/fs/nfsclient/nfs_clstate.c Mon Dec 30 21:24:41 2013 (r260109) @@ -146,7 +146,7 @@ static int nfscl_trylock(struct nfsmount static int nfsrpc_reopen(struct nfsmount *, u_int8_t *, int, u_int32_t, struct nfsclopen *, struct nfscldeleg **, struct ucred *, NFSPROC_T *); static void nfscl_freedeleg(struct nfscldeleghead *, struct nfscldeleg *); -static int nfscl_errmap(struct nfsrv_descript *); +static int nfscl_errmap(struct nfsrv_descript *, u_int32_t); static void nfscl_cleanup_common(struct nfsclclient *, u_int8_t *); static int nfscl_recalldeleg(struct nfsclclient *, struct nfsmount *, struct nfscldeleg *, vnode_t, struct ucred *, NFSPROC_T *, int); @@ -3146,7 +3146,7 @@ nfscl_docb(struct nfsrv_descript *nd, NF struct nfsclclient *clp; struct nfscldeleg *dp = NULL; int numops, taglen = -1, error = 0, trunc; - u_int32_t minorvers, retops = 0, *retopsp = NULL, *repp, cbident; + u_int32_t minorvers = 0, retops = 0, *retopsp = NULL, *repp, cbident; u_char tag[NFSV4_SMALLSTR + 1], *tagstr; vnode_t vp = NULL; struct nfsnode *np; @@ -3210,7 +3210,7 @@ nfscl_docb(struct nfsrv_descript *nd, NF (op > NFSV4OP_CBNOTIFYDEVID && minorvers == NFSV41_MINORVERSION)) { nd->nd_repstat = NFSERR_OPILLEGAL; - *repp = nfscl_errmap(nd); + *repp = nfscl_errmap(nd, minorvers); retops++; break; } @@ -3518,7 +3518,7 @@ nfscl_docb(struct nfsrv_descript *nd, NF } retops++; if (nd->nd_repstat) { - *repp = nfscl_errmap(nd); + *repp = nfscl_errmap(nd, minorvers); break; } else *repp = 0; /* NFS4_OK */ @@ -3539,7 +3539,7 @@ nfsmout: } else { *retopsp = txdr_unsigned(retops); } - *nd->nd_errp = nfscl_errmap(nd); + *nd->nd_errp = nfscl_errmap(nd, minorvers); out: if (gotseq_ok != 0) { rep = m_copym(nd->nd_mreq, 0, M_COPYALL, M_WAITOK); @@ -4645,7 +4645,7 @@ nfscl_deleggetmodtime(vnode_t vp, struct } static int -nfscl_errmap(struct nfsrv_descript *nd) +nfscl_errmap(struct nfsrv_descript *nd, u_int32_t minorvers) { short *defaulterrp, *errp; @@ -4658,6 +4658,11 @@ nfscl_errmap(struct nfsrv_descript *nd) if (nd->nd_repstat == NFSERR_MINORVERMISMATCH || nd->nd_repstat == NFSERR_OPILLEGAL) return (txdr_unsigned(nd->nd_repstat)); + if (nd->nd_repstat >= NFSERR_BADIOMODE && nd->nd_repstat < 20000 && + minorvers > NFSV4_MINORVERSION) { + /* NFSv4.n error. */ + return (txdr_unsigned(nd->nd_repstat)); + } if (nd->nd_procnum < NFSV4OP_CBNOPS) errp = defaulterrp = nfscl_cberrmap[nd->nd_procnum]; else From owner-svn-src-stable-10@FreeBSD.ORG Mon Dec 30 23:46:36 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 19643A3A; Mon, 30 Dec 2013 23:46:36 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 049DE1C93; Mon, 30 Dec 2013 23:46:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBUNkZik084243; Mon, 30 Dec 2013 23:46:35 GMT (envelope-from edavis@svn.freebsd.org) Received: (from edavis@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBUNkZjZ084241; Mon, 30 Dec 2013 23:46:35 GMT (envelope-from edavis@svn.freebsd.org) Message-Id: <201312302346.rBUNkZjZ084241@svn.freebsd.org> From: Eric Davis Date: Mon, 30 Dec 2013 23:46:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260114 - stable/10/sys/dev/bxe X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Dec 2013 23:46:36 -0000 Author: edavis Date: Mon Dec 30 23:46:35 2013 New Revision: 260114 URL: http://svnweb.freebsd.org/changeset/base/260114 Log: Approved by: re@ (gjb) Approved by: davidch (mentor) Modified: stable/10/sys/dev/bxe/bxe.c stable/10/sys/dev/bxe/ecore_sp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/bxe/bxe.c ============================================================================== --- stable/10/sys/dev/bxe/bxe.c Mon Dec 30 23:02:26 2013 (r260113) +++ stable/10/sys/dev/bxe/bxe.c Mon Dec 30 23:46:35 2013 (r260114) @@ -34,7 +34,7 @@ #include __FBSDID("$FreeBSD$"); -#define BXE_DRIVER_VERSION "1.78.75" +#define BXE_DRIVER_VERSION "1.78.76" #include "bxe.h" #include "ecore_sp.h" @@ -5004,6 +5004,7 @@ bxe_dump_mbuf(struct bxe_softc *sc, uint8_t contents) { char * type; + int i = 0; if (!(sc->debug & DBG_MBUF)) { return; @@ -5016,28 +5017,21 @@ bxe_dump_mbuf(struct bxe_softc *sc, while (m) { BLOGD(sc, DBG_MBUF, - "mbuf=%p m_len=%d m_flags=0x%b m_data=%p\n", - m, m->m_len, m->m_flags, - "\20\1M_EXT\2M_PKTHDR\3M_EOR\4M_RDONLY", m->m_data); + "%02d: mbuf=%p m_len=%d m_flags=0x%b m_data=%p\n", + i, m, m->m_len, m->m_flags, M_FLAG_BITS, m->m_data); if (m->m_flags & M_PKTHDR) { BLOGD(sc, DBG_MBUF, - "- m_pkthdr: len=%d flags=0x%b csum_flags=%b\n", - m->m_pkthdr.len, m->m_flags, - "\20\12M_BCAST\13M_MCAST\14M_FRAG" - "\15M_FIRSTFRAG\16M_LASTFRAG\21M_VLANTAG" - "\22M_PROMISC\23M_NOFREE", - (int)m->m_pkthdr.csum_flags, - "\20\1CSUM_IP\2CSUM_TCP\3CSUM_UDP\4CSUM_IP_FRAGS" - "\5CSUM_FRAGMENT\6CSUM_TSO\11CSUM_IP_CHECKED" - "\12CSUM_IP_VALID\13CSUM_DATA_VALID" - "\14CSUM_PSEUDO_HDR"); + "%02d: - m_pkthdr: tot_len=%d flags=0x%b csum_flags=%b\n", + i, m->m_pkthdr.len, m->m_flags, M_FLAG_BITS, + (int)m->m_pkthdr.csum_flags, CSUM_BITS); } if (m->m_flags & M_EXT) { switch (m->m_ext.ext_type) { case EXT_CLUSTER: type = "EXT_CLUSTER"; break; case EXT_SFBUF: type = "EXT_SFBUF"; break; + case EXT_JUMBOP: type = "EXT_JUMBOP"; break; case EXT_JUMBO9: type = "EXT_JUMBO9"; break; case EXT_JUMBO16: type = "EXT_JUMBO16"; break; case EXT_PACKET: type = "EXT_PACKET"; break; @@ -5050,8 +5044,8 @@ bxe_dump_mbuf(struct bxe_softc *sc, } BLOGD(sc, DBG_MBUF, - "- m_ext: %p ext_size=%d, type=%s\n", - m->m_ext.ext_buf, m->m_ext.ext_size, type); + "%02d: - m_ext: %p ext_size=%d type=%s\n", + i, m->m_ext.ext_buf, m->m_ext.ext_size, type); } if (contents) { @@ -5059,6 +5053,7 @@ bxe_dump_mbuf(struct bxe_softc *sc, } m = m->m_next; + i++; } } @@ -5669,6 +5664,7 @@ bxe_tx_encap_continue: /* split the first BD into header/data making the fw job easy */ nbds++; tx_start_bd->nbd = htole16(nbds); + tx_start_bd->nbytes = htole16(hlen); bd_prod = TX_BD_NEXT(bd_prod); Modified: stable/10/sys/dev/bxe/ecore_sp.c ============================================================================== --- stable/10/sys/dev/bxe/ecore_sp.c Mon Dec 30 23:02:26 2013 (r260113) +++ stable/10/sys/dev/bxe/ecore_sp.c Mon Dec 30 23:46:35 2013 (r260114) @@ -4264,7 +4264,7 @@ void ecore_init_mac_credit_pool(struct b if (!CHIP_REV_IS_SLOW(sc)) cam_sz = (MAX_MAC_CREDIT_E2 - GET_NUM_VFS_PER_PATH(sc)) - / func_num + / func_num + GET_NUM_VFS_PER_PF(sc); else cam_sz = ECORE_CAM_SIZE_EMUL; @@ -4443,8 +4443,11 @@ int ecore_config_rss(struct bxe_softc *s struct ecore_raw_obj *r = &o->raw; /* Do nothing if only driver cleanup was requested */ - if (ECORE_TEST_BIT(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) + if (ECORE_TEST_BIT(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) { + ECORE_MSG(sc, "Not configuring RSS ramrod_flags=%lx\n", + p->ramrod_flags); return ECORE_SUCCESS; + } r->set_pending(r); From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 00:07:41 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D3A4CED0; Tue, 31 Dec 2013 00:07:41 +0000 (UTC) Received: from mail-ea0-x22a.google.com (mail-ea0-x22a.google.com [IPv6:2a00:1450:4013:c01::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C9F671DAC; Tue, 31 Dec 2013 00:07:40 +0000 (UTC) Received: by mail-ea0-f170.google.com with SMTP id k10so5348847eaj.1 for ; Mon, 30 Dec 2013 16:07:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=g12a0HT0palQ1IasGu4Lc/H+g9upT2+AVugk9tlBkhU=; b=lZMwufu6rfAYmktXpqSIzKF2aLjbeZ3J73BkEPPx1evVCpRnA0j5s/V1bnW2CPkytc I0NZqXgUdAo6cot1WkDfx0mAdZOm4J8P+DUWYl1qChcdBJQ8NU7Fy9C/qEkNcNvfMEuF hxd45Kn3UwYs6/HGoou85+PTrCN16kjuTps/IXKxCp3F2/nipLmRnOt8OTlkjrkqQRIu S3Wet8lU6RkZzKO6JFC3Kw/pQUtFBdk4II6oDH5gXxCBBeSm62ymALYMjDZRlrc3mhOz HADi1UUrfOgC0jZk5GoeB5tiejN18+8wQfjXHtdZLYu0ZeB/ym/O/2KHJvvY/k8n+Jz5 uMBw== MIME-Version: 1.0 X-Received: by 10.15.95.72 with SMTP id bc48mr4052632eeb.49.1388448459324; Mon, 30 Dec 2013 16:07:39 -0800 (PST) Sender: hiren.panchasara@gmail.com Received: by 10.14.2.66 with HTTP; Mon, 30 Dec 2013 16:07:39 -0800 (PST) In-Reply-To: <201312302346.rBUNkZjZ084241@svn.freebsd.org> References: <201312302346.rBUNkZjZ084241@svn.freebsd.org> Date: Mon, 30 Dec 2013 16:07:39 -0800 X-Google-Sender-Auth: GBoepojR5TNMjI-rul3o6lYyIRQ Message-ID: Subject: Re: svn commit: r260114 - stable/10/sys/dev/bxe From: hiren panchasara To: Eric Davis Content-Type: text/plain; charset=UTF-8 Cc: svn-src-stable@freebsd.org, svn-src-all , src-committers , svn-src-stable-10@freebsd.org X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 00:07:41 -0000 On Mon, Dec 30, 2013 at 3:46 PM, Eric Davis wrote: > Author: edavis > Date: Mon Dec 30 23:46:35 2013 > New Revision: 260114 > URL: http://svnweb.freebsd.org/changeset/base/260114 > > Log: > Approved by: re@ (gjb) > Approved by: davidch (mentor) Missed the commit-log message? :-) cheers, Hiren From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 00:12:53 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0C5842A1; Tue, 31 Dec 2013 00:12:53 +0000 (UTC) Received: from mail0.glenbarber.us (mail0.glenbarber.us [208.86.227.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CF3AC1E34; Tue, 31 Dec 2013 00:12:52 +0000 (UTC) Received: from glenbarber.us (c-71-224-221-174.hsd1.nj.comcast.net [71.224.221.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 3949995C7; Tue, 31 Dec 2013 00:12:51 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 3949995C7 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Mon, 30 Dec 2013 19:12:49 -0500 From: Glen Barber To: Eric Davis Subject: Re: svn commit: r260114 - stable/10/sys/dev/bxe Message-ID: <20131231001249.GK1748@glenbarber.us> References: <201312302346.rBUNkZjZ084241@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Ucgz5Oc/kKURWzXs" Content-Disposition: inline In-Reply-To: <201312302346.rBUNkZjZ084241@svn.freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 User-Agent: Mutt/1.5.22 (2013-10-16) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-10@freebsd.org X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 00:12:53 -0000 --Ucgz5Oc/kKURWzXs Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 30, 2013 at 11:46:35PM +0000, Eric Davis wrote: > Author: edavis > Date: Mon Dec 30 23:46:35 2013 > New Revision: 260114 > URL: http://svnweb.freebsd.org/changeset/base/260114 >=20 > Log: > Approved by: re@ (gjb) > Approved by: davidch (mentor) It was not approved by re@, as stable/10 is not frozen. Glen >=20 > Modified: > stable/10/sys/dev/bxe/bxe.c > stable/10/sys/dev/bxe/ecore_sp.c > Directory Properties: > stable/10/ (props changed) >=20 > Modified: stable/10/sys/dev/bxe/bxe.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- stable/10/sys/dev/bxe/bxe.c Mon Dec 30 23:02:26 2013 (r260113) > +++ stable/10/sys/dev/bxe/bxe.c Mon Dec 30 23:46:35 2013 (r260114) > @@ -34,7 +34,7 @@ > #include > __FBSDID("$FreeBSD$"); > =20 > -#define BXE_DRIVER_VERSION "1.78.75" > +#define BXE_DRIVER_VERSION "1.78.76" > =20 > #include "bxe.h" > #include "ecore_sp.h" > @@ -5004,6 +5004,7 @@ bxe_dump_mbuf(struct bxe_softc *sc, > uint8_t contents) > { > char * type; > + int i =3D 0; > =20 > if (!(sc->debug & DBG_MBUF)) { > return; > @@ -5016,28 +5017,21 @@ bxe_dump_mbuf(struct bxe_softc *sc, > =20 > while (m) { > BLOGD(sc, DBG_MBUF, > - "mbuf=3D%p m_len=3D%d m_flags=3D0x%b m_data=3D%p\n", > - m, m->m_len, m->m_flags, > - "\20\1M_EXT\2M_PKTHDR\3M_EOR\4M_RDONLY", m->m_data); > + "%02d: mbuf=3D%p m_len=3D%d m_flags=3D0x%b m_data=3D%p\n", > + i, m, m->m_len, m->m_flags, M_FLAG_BITS, m->m_data); > =20 > if (m->m_flags & M_PKTHDR) { > BLOGD(sc, DBG_MBUF, > - "- m_pkthdr: len=3D%d flags=3D0x%b csum_flags=3D%b\n", > - m->m_pkthdr.len, m->m_flags, > - "\20\12M_BCAST\13M_MCAST\14M_FRAG" > - "\15M_FIRSTFRAG\16M_LASTFRAG\21M_VLANTAG" > - "\22M_PROMISC\23M_NOFREE", > - (int)m->m_pkthdr.csum_flags, > - "\20\1CSUM_IP\2CSUM_TCP\3CSUM_UDP\4CSUM_IP_FRAGS" > - "\5CSUM_FRAGMENT\6CSUM_TSO\11CSUM_IP_CHECKED" > - "\12CSUM_IP_VALID\13CSUM_DATA_VALID" > - "\14CSUM_PSEUDO_HDR"); > + "%02d: - m_pkthdr: tot_len=3D%d flags=3D0x%b csum_fla= gs=3D%b\n", > + i, m->m_pkthdr.len, m->m_flags, M_FLAG_BITS, > + (int)m->m_pkthdr.csum_flags, CSUM_BITS); > } > =20 > if (m->m_flags & M_EXT) { > switch (m->m_ext.ext_type) { > case EXT_CLUSTER: type =3D "EXT_CLUSTER"; break; > case EXT_SFBUF: type =3D "EXT_SFBUF"; break; > + case EXT_JUMBOP: type =3D "EXT_JUMBOP"; break; > case EXT_JUMBO9: type =3D "EXT_JUMBO9"; break; > case EXT_JUMBO16: type =3D "EXT_JUMBO16"; break; > case EXT_PACKET: type =3D "EXT_PACKET"; break; > @@ -5050,8 +5044,8 @@ bxe_dump_mbuf(struct bxe_softc *sc, > } > =20 > BLOGD(sc, DBG_MBUF, > - "- m_ext: %p ext_size=3D%d, type=3D%s\n", > - m->m_ext.ext_buf, m->m_ext.ext_size, type); > + "%02d: - m_ext: %p ext_size=3D%d type=3D%s\n", > + i, m->m_ext.ext_buf, m->m_ext.ext_size, type); > } > =20 > if (contents) { > @@ -5059,6 +5053,7 @@ bxe_dump_mbuf(struct bxe_softc *sc, > } > =20 > m =3D m->m_next; > + i++; > } > } > =20 > @@ -5669,6 +5664,7 @@ bxe_tx_encap_continue: > /* split the first BD into header/data making the fw job eas= y */ > nbds++; > tx_start_bd->nbd =3D htole16(nbds); > + tx_start_bd->nbytes =3D htole16(hlen); > =20 > bd_prod =3D TX_BD_NEXT(bd_prod); > =20 >=20 > Modified: stable/10/sys/dev/bxe/ecore_sp.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- stable/10/sys/dev/bxe/ecore_sp.c Mon Dec 30 23:02:26 2013 (r260113) > +++ stable/10/sys/dev/bxe/ecore_sp.c Mon Dec 30 23:46:35 2013 (r260114) > @@ -4264,7 +4264,7 @@ void ecore_init_mac_credit_pool(struct b > if (!CHIP_REV_IS_SLOW(sc)) > cam_sz =3D (MAX_MAC_CREDIT_E2 > - GET_NUM_VFS_PER_PATH(sc)) > - / func_num=20 > + / func_num > + GET_NUM_VFS_PER_PF(sc); > else > cam_sz =3D ECORE_CAM_SIZE_EMUL; > @@ -4443,8 +4443,11 @@ int ecore_config_rss(struct bxe_softc *s > struct ecore_raw_obj *r =3D &o->raw; > =20 > /* Do nothing if only driver cleanup was requested */ > - if (ECORE_TEST_BIT(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) > + if (ECORE_TEST_BIT(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) { > + ECORE_MSG(sc, "Not configuring RSS ramrod_flags=3D%lx\n", > + p->ramrod_flags); > return ECORE_SUCCESS; > + } > =20 > r->set_pending(r); > =20 --Ucgz5Oc/kKURWzXs Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBCAAGBQJSwgwBAAoJELls3eqvi17Qs/UQAIATaNrfZV0SYgV89CvMOKJ+ Bv6vuZBfKUMNHRSNjxfEaB2uN9Zsl2gFfXPX9Iummh2qDxQm3oHQVmt0BjgvT+9V 2Wne1eKo1IInNE87j5oEOv9rWx+uXFMucGjGFPb9cFXQimp7jkhr2pYXtw4dX/Uv QP/EwYZ74Rhnsq+c3R2lwkkoGYxEoU4yRbYQkw6T/jmKfMqqteWVUK7GALMbEpvv cnRvRDUzsMo/iM6OqqRFJCFWAuICw1lndz6QgD1fzPY1YSZ+izzmEyjzxmHsHyud eJ1SvkMSqpc6gpa4Fl7/BCIIFhF2pNy0U7lE2IQGhwlkFpMSAlf4gfch2vZsQhyg 9Pwq3WJr3zCUnQ2tdq7a3ny97tD7EmoshhN78u3KiG5qDSu4n6JZBpu9D1Ev2cX9 MzI+gZR75JydwIaa6uWemRXwFkBS5yReK10CxEb8zVD+LgBJHDEiYg7cKWk9EmEZ YCbAlSAJOoW/ZI0M/UY/eM1Hk+RniBrrEZJD9O/CTggf28odSXNj4D8mNXXjTADL o9sk+76uIHGrx4Cl0Q7s7YRoNxHlPUhwupA/Eu2y2vF885oY3JhDboY3jrEho+Aj TmTEngUKu1AVRs/snPOle0L+Gd1V0Pdi0KCBXTTmgjj8F/0/PifdBwxbA+f3+uVS lkekMA1n4ULrl8yBYoUE =VmDe -----END PGP SIGNATURE----- --Ucgz5Oc/kKURWzXs-- From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 00:15:35 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6A8FC4D4; Tue, 31 Dec 2013 00:15:35 +0000 (UTC) Received: from mail-gw3-out.broadcom.com (mail-gw3-out.broadcom.com [216.31.210.64]) by mx1.freebsd.org (Postfix) with ESMTP id 2B8E31E4F; Tue, 31 Dec 2013 00:15:34 +0000 (UTC) X-IronPort-AV: E=Sophos;i="4.95,576,1384329600"; d="scan'208";a="6575262" Received: from irvexchcas08.broadcom.com (HELO IRVEXCHCAS08.corp.ad.broadcom.com) ([10.9.208.57]) by mail-gw3-out.broadcom.com with ESMTP; 30 Dec 2013 16:18:52 -0800 Received: from IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) by IRVEXCHCAS08.corp.ad.broadcom.com (10.9.208.57) with Microsoft SMTP Server (TLS) id 14.1.438.0; Mon, 30 Dec 2013 16:15:33 -0800 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) with Microsoft SMTP Server id 14.1.438.0; Mon, 30 Dec 2013 16:15:34 -0800 Received: from localhost (dhcp-10-12-137-51.irv.broadcom.com [10.12.137.51]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id DD3BA246A7; Mon, 30 Dec 2013 16:15:33 -0800 (PST) Date: Mon, 30 Dec 2013 16:15:33 -0800 From: Eric Davis To: hiren panchasara Subject: Re: svn commit: r260114 - stable/10/sys/dev/bxe Message-ID: <20131231001533.GA30565@broadcom.com> References: <201312302346.rBUNkZjZ084241@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="8t9RHnE3ZwKMSgU+" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2012-12-30) Cc: svn-src-stable@freebsd.org, svn-src-all , src-committers , svn-src-stable-10@freebsd.org X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: Eric Davis List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 00:15:35 -0000 --8t9RHnE3ZwKMSgU+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 30, 2013 at 04:07:39PM -0800, hiren panchasara wrote: > On Mon, Dec 30, 2013 at 3:46 PM, Eric Davis wrote: > > Author: edavis > > Date: Mon Dec 30 23:46:35 2013 > > New Revision: 260114 > > URL: http://svnweb.freebsd.org/changeset/base/260114 > > > > Log: > > Approved by: re@ (gjb) > > Approved by: davidch (mentor) >=20 > Missed the commit-log message? :-) >=20 > cheers, > Hiren Hey Hiren, Ah yes! Should have included: Merged r260113 from head. - e --8t9RHnE3ZwKMSgU+ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAEBAgAGBQJSwgylAAoJEPUt8GDsVYPdOmsH/2A5ZyVmyRW07GtFyPpOwDhE WmLfG5G9eZbfZTEcoOuIt3C+SVWO1U5ApD7wPnuSHydGsqjmcMVAejWV62SAY4Td N8ZFJ6bn6ZUNiDVzcaP37YCuvT3p4tw6YoPM8Vth52/M8nuotlNfkvOFxzvM/xYS VrDawbq3L08bSOjQWxT7L0nKSW6qnFOt2D4CrP/xnQwOMyAd4lmAjGfCeVA8Wlx3 8d8noLPrc1uhqfkA4h7urJmU3Jlz6NsM8h0s+iMF4NhE7yQvpocd2o+uHv19pEkk 4xlWu4nX0g+HSqG5jYaKTTwR33++WwsBy88WLFP4SY7SjnyrliH+ay6ladL+bOY= =8Tvc -----END PGP SIGNATURE----- --8t9RHnE3ZwKMSgU+-- From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 05:20:44 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A0F0619D; Tue, 31 Dec 2013 05:20:44 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8B4F611FF; Tue, 31 Dec 2013 05:20:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBV5KiR0016030; Tue, 31 Dec 2013 05:20:44 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBV5Ki8E016029; Tue, 31 Dec 2013 05:20:44 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201312310520.rBV5Ki8E016029@svn.freebsd.org> From: Kevin Lo Date: Tue, 31 Dec 2013 05:20:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260120 - stable/10/sys/contrib/dev/run X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 05:20:44 -0000 Author: kevlo Date: Tue Dec 31 05:20:44 2013 New Revision: 260120 URL: http://svnweb.freebsd.org/changeset/base/260120 Log: MFC r256717: Update firmware for run(4) to version 0.33. Modified: stable/10/sys/contrib/dev/run/rt2870.fw.uu Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/contrib/dev/run/rt2870.fw.uu ============================================================================== --- stable/10/sys/contrib/dev/run/rt2870.fw.uu Tue Dec 31 05:15:29 2013 (r260119) +++ stable/10/sys/contrib/dev/run/rt2870.fw.uu Tue Dec 31 05:20:44 2013 (r260120) @@ -42,191 +42,191 @@ # is RT3071. On each 4KB firmware, the last 2 bytes are CRC, 3rd last byte # is minor version number and 4th last byte is major version number. # This file comes with -# RT2870 v. 0.236 -# RT3071 v. 0.236 +# RT2870 v. 0.33 +# RT3071 v. 0.33 begin 644 rt2870.fw.uu -M____`A`H`A`R`A!]`A.[`A.\`A/;`A/@$A/<(@(8V@(:&@(5/`(4=S`%!B`- -M`Q(:_R*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`&,=`CPY)`!I_"0 -M`8S@,.`!4#_4ZY4>T"0CE.K0#`^3U -M1N5'M`H(Y3JT`0/D]4;D_:]6$@N1T@0BD'`1X/3_D'`0X%__D'`1X%4G3Y!P -M&/"0D`(I -M\#!'!*\G@`3E)_3_D`(H[_#E5O1P`P(3N@(3LY!P$.#^D'`1X/WM^.;U5_VO -M5A(+D9`$%'2`\.20#][?6"CH/@]5?] -MKU82"Y&0!!1T@/#DD'`3\.56]'`#`A.Z`A.SD!``X/57Y/58]5F0$`/@M"@% -M=5@!@#R0$`/@M#`%=5@"@#"0$`/@M#,%=5@$@"20$`/@M#4,D!`"X+1R!758 -M"(`1D!`#X+0U"I`0`N"TDP-U6!#E6##A&9`%".!$`?#]D`4%X%3[\$0$\.U4 -M_I`%"/#D]4[U3W4Z_W4\_ZU7KU82"Y'DD'`R\,(6]5SU6O5;D'`P\*/PD`04 -M=(#PY)!P$_#E5O1P`P(3NH!WD'`0X"3_DI/D_:]6$@N1D`04=(#PY)!P$_#E -M5O1@7X!6D'`0X"3_DDK2!:U7KU82"Y&0!!1T@/#DD'`3\.56]&`\@#.0#U7*U7KU82"Y&0!!1T@/"0<##E6O"CY5OPY/5:]5N00<"7@1`'P(B+E4W`:,&`)LDTP300%1L($Y4]%3F`(Y4\53W`"%4XB(L)" -MTR(P%#"0#_D'`9X/[O7I`"*?`P1P2O)X`$Y2?T -M_Y`"*._PPA0P%F#"KY`0!.#U5Y`"*.!4!?57Y5QD`7`AY5>0$`0PX`;@5/OP -M@`3@1`3PY50$`3@1`3PTJ\BPDO"3.5$$@J=%)D`%2<$%2,(%0,0%*T@%,U@ -M%-Z@```5*85(0X5*0H5,7N5'9`9@`P(5*8`;Y4C$5`_U0^5*Q%0/]4+E3,14 -M#_5>Y4=D!G!A4T,/@%R%24.%2T*%35[E1V0&<$V`&^5)Q%0/]4/E2\14#_5" -MY4W$5`_U7N5'9`9P,.5#5`]$$/5#@";E1V0$8`7E1[0%!D->!'5"">5'M`80 -MY4-4#T0P]4.`!M)+@`+23.3U)>5"Q%3P_^5#5`]/]5_28"+2%>5')/5@"R3+ -M8`PA7"K\($TJ\BPJ^0!!3@5`Y@!-(8@`CE3D5/)/^2 -M&-*OD`04X*+DDAET'O#E7U0/]2WE)7`3,!@%Y5\@Y0LP&1GE7U0P_[\P$>4E -M<`5U)0R``A4ETFS2;8`/Y5\PY@;";-)M@`32;,)MY4=D`W`A,$L&PFS2;8`8 -MY25P`S!,$<),Y25P!74E!X`"%272;-)MY4>T"13E1"#C"^4Z9`)@!>4ZM`,$ -MPFS2;>5'M`H3Y3JT`0;";-)M@`CE.G`$TFS";2!I!^5>(.`"LF@@:P?E7B#A -M`K)J(&T'Y5X@X@*R;'4N0"!I!*)H@"8P:`;E1J+B@!WE7B#@!'\!@`)_`.5& -M5/#^OO`$?@&``GX`[F\D_Y)SDG(@:P2B:H`F,&H&Y4:BXH`=Y5X@X01_`8`" -M?P#E1E3P_K[P!'X!@`)^`.YO)/^2=9)T(&T$HFR`)N5'9`IP(C!L!N5&HN.` -M%^4ZM`$&Y4:BXX`TY48@Y`,PY0/3@`'#@"8P;`;E1J+B@!WE7B#B!'\!@`)_ -M`.5&5/#^OO`$?@&``GX`[F\D_Y)QDG"0$`#@D!`L\)`0`^##E#!`%*)QDG>B -M<))VY2X3$U0_]2["=])VD!`OY2[PY4=D!G!'D`(HX#!'`_^``O3_CR>0`BG@ -M5/[PY4/$5`\48`PD_F`,)`-P$\(X@`_2.(`+Y48PX@/3@`'#DC@P1P6O)P(8 -MG^4G]/\"&)_E1V0'8`_E1V0(8`GE1V0)8`,"&`V0`BC@,$<#_X`"]/^/)Y`" -M*>!4_/#E.A1@(A1@)11@+23\8$DD^6`4)`YP4.5&$Q-4/W7P`X3E\"3_@#K2 -M.<(X@#[E1C#B`].`'<.`&N5&,.(-5#C#E#!0!GX`?P&`!'X`?P#N3R3_DCC" -M.8`3Y48PX@/3@`'#DCG".(`$PCC".3!'!*\G@`3E)_3_`AB?Y4=D#&`)Y4=D -M"V`#`ABDD`(HX#!'`_^``O3_CR>0`BG@5/WPY3H48"`48"$48"LD_&!%)/E@ -M$B0.<$KE1A,35#]U\`.$Y?"`*=(Y@#KE1C#B`].``<.2.8`MY48PX@U4.,.4 -M,%`&?@!_`8`$?@!_`.Y/)/^2.8`/Y48PX@/3@`'#DCF``L(Y,$<$KR>`!.4G -M]/^0`BCO\"+E1[0+$)`"*>!4Z_#E)U3K147U)R+DD`(I\#!'!*]%@`3E1?3_ -MD`(H[_`BCU#262*/5-)8(N3U8L*OY5$48$@48&8D`F`#`AG^TEEU50&0`J+@ -M5'_PH^`@YR.0!#3@M`(CX+0"$G\@$AC0D!`$X%3S\'51`0(9_N50 -M<`9U8@,"&?Z0$@#@5`-P$G\@$AC0D`*BX%2_\'51`@(9_N50<`,"&?F0`J/@ -M,.8#`AGUD`0WX&0B8`,"&?60`8IT?O"0`9;PD!($=`KPY5@PXQ7DD`4`\*-T -M"/"C=`'P=`/P?P$2#2J0$RC@D'`:\)`3*>"0!4\X`1X%3[\(`4Y3STD!,J8`C@ -M5/)%//"`!.!4^O"0!`'@5/WP=6(!=54"Y/51@`GE4'`%=6(#]5'E8F`5P@'D -M]5'"6:UBKT`2&LOE8K0#`M(#TJ\BPJ\P`1+DD`&6\/51PEG"`7T"KT`2&LOE -M4A1@#`1@`P(:R'52`755`Y`$`>!$#O#E6%088!Z03^=!0N]8+D-'#U@^"T_QET%"[U@N0T -M\)`0'.#U8I`0'N`@X?.0$!S@D'`H\)`0'>"0<"GPD!`> -MX)!P*O`P2@>0<"3@1`'PP@72KR(B(@`````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M`````````````````````````````````````````````````````````.SQ -M2O___P(0*`(0,@(0?0(3NP(3O`(3VP(3X!(3W"("&-H"&AH"%3P"%'"T"`9U3@%U3X20`D_Y)'(I`$!.`EX"1=]5>0T#`B0#T_Y!P$.!?_Y!P$>!5)T^0 -M#_D'`9X/[O7I`" -M*?`P1P2O)X`$Y2?T_Y`"*._PY5;T<`,"$[H"$[.0#][?CF]5?] -MKU82"ZJ0!!1T@/#DD'`3\.56]'`#`A.Z`A.SD'`0X/Z0WU@HZ#X/57 -M_:]6$@NJD`04=(#PY)!P$_#E5O1P`P(3N@(3LY`0`.#U5^3U6/59D!`#X+0H -M!758`8`\D!`#X+0P!758`H`PD!`#X+0S!758!(`DD!`#X+0U#)`0`N"T<@5U -M6`B`$9`0`^"T-0J0$`+@M),#=5@0Y5@PX1F0!0C@1`'P_9`%!>!4^_!$!/#M -M5/Z0!0CPY/5.]4]U.O]U//^M5Z]6$@NJY)!P,O#"%O5<]5KU6Y!P,/"C\)`$ -M%'2`\.200`BG@_Y!P&>#^[UZ0`BGP,$<$KR>`!.4G -M]/^0`BCO\,(4,!9@PJ^0$`3@]5>0`BC@5`7U5^5<9`%P(>57D!`$,.`&X%3[ -M\(`$X$0$\.57,.(Q!5OE6W`K!5J`)^57,.`;Y5R0$`1P!N!4^_"`!.!$!/`% -M6^5;<`L%6H`'D!`$X$0$\-*O(L)+PDSE1!(*MA29`!4G!!4C"!4#$!2M(!3- -M8!3>H```%2F%2$.%2D*%3%[E1V0&8`,"%2F`&^5(Q%0/]4/E2L14#_5"Y4S$ -M5`_U7N5'9`9P85-##X!Y4=D!G!-@!OE2<14#_5#Y4O$5`_U -M0N5-Q%0/]5[E1V0&<##E0U0/1!#U0X`FY4=D!&`%Y4>T!09#7@1U0@GE1[0& -M$.5#5`]$,/5#@`;22X`"TDSD]27E0L14\/_E0U0/3_5?TF`BTA7E1R3U8`LD -MRV`')$!P!L(5(A(8I1(57L(5PJ_"!-*O(L*OD`04X%0.8`32&(`(Y4Y%3R3_ -MDAC2KY`$%."BY)(9=![PY5]4#_4MY25P$S`8!>5?(.4+,!D9Y5]4,/^_,!'E -M)7`%=24,@`(5)=)LTFV`#^5?,.8&PFS2;8`$TFS";>5'9`-P(3!+!L)LTFV` -M&.4E<`,P3!'"3.4E<`5U)0>``A4ETFS2;>5'M`D4Y40@XPOE.F0"8`7E.K0# -M!,)LTFWE1[0*$^4ZM`$&PFS2;8`(Y3IP!-)LPFT@:0?E7B#@`K)H(&L'Y5X@ -MX0*R:B!M!^5>(.("LFQU+D`@:02B:(`F,&@&Y4:BXH`=Y5X@X`1_`8`"?P#E -M1E3P_K[P!'X!@`)^`.YO)/^25>(.$$?P&` -M`G\`Y494\/Z^\`1^`8`"?@#N;R3_DG62="!M!*)L@";E1V0*<"(P;`;E1J+C -M@!?E.K0!!N5&HN.`-.5&(.0#,.4#TX`!PX`F,&P&Y4:BXH`=Y5X@X@1_`8`" -M?P#E1E3P_K[P!'X!@`)^`.YO)/^2<9)PD!``X)`0+/"0$`/@PY0P0!2B<9)W -MHG"2=N4N$Q-4/_4NPG?2=I`0+^4N\.5'9`9P1Y`"*.`P1P/_@`+T_X\GD`(I -MX%3^\.5#Q%0/%&`,)/Y@#"0#0 -M`BG@5/SPY3H48"(48"448"TD_&!))/E@%"0.<%#E1A,35#]U\`.$Y?`D_X`Z -MTCG".(`^Y48PX@/3@!W#@!KE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(X -MPCF`$^5&,.(#TX`!PY(YPCB`!,(XPCDP1P2O)X`$Y2?T_P(8G^5'9`Q@">5' -M9`M@`P(8I)`"*.`P1P/_@`+T_X\GD`(IX%3]\.4Z%&`@%&`A%&`K)/Q@123Y -M8!(D#G!*Y483$U0_=?`#A.7P@"G2.8`ZY48PX@/3@`'#DCF`+>5&,.(-5#C# -ME#!0!GX`?P&`!'X`?P#N3R3_DCF`#^5&,.(#TX`!PY(Y@`+".3!'!*\G@`3E -M)_3_D`(H[_`BY4>T"Q"0`BG@5.OPY2=4ZT5%]2!4^_"`%.4\])`3*F`( -MX%3R13SP@`3@5/KPD`0!X%3]\'5B`755`N3U48`)Y5!P!75B`_51Y6)@%<(! -MY/51PEFM8J]`$AK+Y6*T`P+2`]*O(L*O,`$2Y)`!EO#U4<)9P@%]`J]`$AK+ -MY5(48`P$8`,"&LAU4@%U50.0!`'@1`[PY5A4&&`>D'`:X)`3*/"0"0$!WPD'`JX)`0'O"0$!S@]6*0$![@(.'SD!`,B*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`&, +M=`CPY)`!I_"0`8S@,.`D'`2X/56D`0$X!(*G1#S,1#7-A$<4!%341%<4A%<4Q%<5!&= +M51'L5A*O9!)*91)U9A+;`A57(`(#,`,=?0*O5A(+D9`$%'2`\.20%5D'2`B*0!4#_4ZY4>T"0CE.K0#`^3U1N5'M`H(Y3JT`0/D]4;D_:]6$@N1T@0BD'`1 +MX/3_D'`0X%__D'`1X%4_3Y!P&/"0D`(I\#!'!*\_@`3E/_3_D`(H[_#E5O1P`P(57@(5 +M5Y!P$.`3DAO"'*U7KU82"Y&0!!1T@/`P&P+2!^200 +M3+'@D$R^\)!,N."03+_PY)!,L?"03+G@D$RX\*U7KU82"Y&0!!1T@/#DD'`3 +M\.56]'`#`A5>`A57D'`0X/4J=3T#=3X?Y/4OK5>O5A(+D9`$%'2`\.200$`#@]5?D]5CU69`0`^"T*`5U6`&`/)`0`^"T,`5U6`*` +M,)`0`^"T,P5U6`2`))`0`^"T-0R0$`+@M'(%=5@(@!&0$`/@M#4*D!`"X+23 +M`W58$.58,.$9D`4(X$0!\/V0!07@5/OP1`3P[53^D`4(\'4[&.3U)O4GPAS" +M&_5.]4]U.O]U//^M5Z]6$@N1D'`V=#?PHW0R\)`$`>!$`?#"%N3U7/5:]5N0 +M<##PH_#U*L(7D`04=(#PY)!P$_#E5O1P`P(57@(55Y!P$.`D_Y*3Y/VO5A(+ +MD9`$%'2`\.200$`#@D!`L\)`0+W1`\)!P$>!4?_57 +MX%2`D'`R\)!P$.#_Y5?3GT!#D'`SY5?PD'`0X/^0<#/@PY_3E`1`<^`D_/#@ +M_Y!P,N!/D`4`\.585`]@!'\7@`)_$9`%`>_PHW0!\'0#\/\2#2J`PY!P,^57 +M\)!P,^#_D'`0X,.?TY0$0#"0<#/@)`3PX/^0<#+@3Y`%`/#E6%0/8`1_%X`" +M?Q&0!0'O\*-T`?!T`_#_$@TJ@,"0_PHW0!\'0#\/\2#2J0$`#@D!`L\)`0+W1_\.3]KU82"Y&0!!1T@/#D +MD'`3\"*0O5A(+D9`$%'2`\.20O5A(+D9`$%'2`\)!P,.5:\*/E6_#D]5KU6Y!P$_#E5O1@ +M1(`[D'`1X"3_DA>00<"7@1`'P(B+E/D4]8`KE/A4^<`H5/8`&=3T# +M=3X?Y3Y%/6`#`A8.Y2IP`P(6#G2@)2_U@N0T3/6#X&!Z?WX2%S[O5/Y$`OU_ +M?A(7).4O?P`EX/[O)`#U@G1-/J^"D$RH\*/O\.3U5O57?W\2%SZ03*C@^J/@ +M)5?U@NHU5O6#[_`%5^57<`(%5L.4@.56E`%`V']^$A<^[T0#_7]^$A3U(8`,T@G2"M(+T@R``M,BPR*0!`+@1`CPA3F"A3B#Y3/P +MY3*C\)`$`N!4]_`B,!0PD'`9X%4__Y!P&.!/]3^0`BG@_Y!P&>#^[UZ0`BGP +M,$<$KS^`!.4_]/^0`BCO\,(4,!9@PJ^0$`3@]5>0`BC@5`7U5^5<9`%P(>57 +MD!`$,.`&X%3[\(`$X$0$\.57,.(Q!5OE6W`K!5J`)^57,.`;Y5R0$`1P!N!4 +M^_"`!.!$!/`%6^5;<`L%6H`'D!`$X$0$\-*O(I`0'.WPH^_PHW0*\)`0'.#U +M6)`0'N`@X?,BD!`=[_"C=`OPD!`X"#A\Z]8(L)+PDSE1!(*G1=Y +M`!@'!!@#"!?C$!>-(!>M8!>^H```&`F%2$.%2D*%3%[E1V0&8`,"&`F`&^5( +MQ%0/]4/E2L14#_5"Y4S$5`_U7N5'9`9P85-##X!Y4=D!G!- +M@!OE2<14#_5#Y4O$5`_U0N5-Q%0/]5[E1V0&<##E0U0/1!#U0X`FY4=D!&`% +MY4>T!09#7@1U0@GE1[0&$.5#5`]$,/5#@`;22X`"TDSD]27E0L14\/_E0U0/ +M3_5?TF`BTA7E1R3U8`LDRV`')$!P!L(5(A(;FA(8/L(5PJ_"!-*O(L*OD`04 +MX%0.8`32&(`(Y4Y%3R3_DAC2KY`$%."BY)(9=![PY5]4#_4MY25P$S`8!>5? +M(.4+,!D9Y5]4,/^_,!'E)7`%=24,@`(5)=)LTFV`#^5?,.8&PFS2;8`$TFS" +M;>5'9`-P(3!+!L)LTFV`&.4E<`,P3!'"3.4E<`5U)0>``A4ETFS2;>5'M`D4 +MY40@XPOE.F0"8`7E.K0#!,)LTFWE1[0*$^4ZM`$&PFS2;8`(Y3IP!-)LPFT@ +M:0?E7B#@`K)H(&L'Y5X@X0*R:B!M!^5>(.("LFQU+D`@:02B:(`F,&@&Y4:B +MXH`=Y5X@X`1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO)/^25>(.$$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG62="!M!*)L +M@";E1V0*<"(P;`;E1J+C@!?E.K0!!N5&HN.`-.5&(.0#,.4#TX`!PX`F,&P& +MY4:BXH`=Y5X@X@1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO)/^2<9)PD!``X)`0 +M+/"0$`/@PY0P0!G@9#)@%*)QDG>B<))VY2X3$U0_]2["=])V,!<-4R[PY2Y% +M79`0+_"`!I`0+^4N\.5'9`9P1Y`"*.`P1P/_@`+T_X\_D`(IX%3^\.5#Q%0/ +M%&`,)/Y@#"0#5'9`M@`P(;F9`" +M*.`P1P/_@`+T_X\_D`(IX%3]\.4Z%&`@%&`A%&`K)/Q@123Y8!(D#G!*Y483 +M$U0_=?`#A.7P@"G2^8`ZY48PX@/3@`'#DOF`+>5&,.(-5#C#E#!0!GX`?P&` +M!'X`?P#N3R3_DOF`#^5&,.(#TX`!PY+Y@`+"^3!'!*\_@`3E/_3_D`(H[_`B +MY4>T"Q"0`BG@5.OPY3]4ZT5%]3\BY)`"*?`P1P2O18`$Y47T_Y`"*._P(H]0 +MTEDBCU326"+D]6+"K^51%&!+%&!L)`)@`P(!4_?!U8@%U50+D]5&`">50 +M<`5U8@/U4>5B8!7"`>3U4<)9K6*O0!(=J>5BM`,"T@/2KR+"KS`!$N20`9;P +M]5'"6<(!?0*O0!(=J>52%&`,!&`#`AVF=5(!=54#D`0!X$0.\.585!A@'I!P +M&N"0$RCPD'`;X)`3*?"C=`7PD'`BX)`3*_"`$9`3*.!$#_"CX$0/\*/@1`7P +MD!($=`/PY5@PXQ:0!0!T@/"C=`CPHW0!\'0#\'\!$@TJD`*BX$3`\)`0!.!$ +M#/#D]5+U53`""<("?0&O01(=J3`#`L(#Y)`!EO#2KR+O]&`MY/YT%"[U@N0T +MX"#A\Y`0'."0 +M<"CPD!`=X)!P*?"0$![@D'`J\#!*!Y!P).!$`?#"!=*O(B`<6GT%$A]SD$RP +M$A]DD$R[[_!]`Q(?_P?0D2'WZ03+?O\'T($A]^D$RV[_!] +M!Q(?F9!,M>_P?082'YF03+3O\.203+'PD$RYX)!,N/#2',('(GT!?[@2%R1_ +MN1(7/N]D`6`#`A]9TY!,L^"5)Y!,LN"5)D`1D$RQX`3PD$RXX&`:X!3P@!60 +M3+G@_Y!,N.##GU`(D$RYX)!,N/#D]2;U)WT%?[@2%R203+`2'XE]`G^X$AD'`1X/4\Y)!P +M$_"0!!1T@/#E5O1P`P(57@(55R`"`S`#'7T"KU82"ZJ0!!1T@/#DD'`3\.56 +M]'`#`A5>`A57A59!T@(BD'`0X%1__[\*#9!P$>"T"`9U3@%U3X20`D_Y)'(I`$!.`EX"1=]5>0 +M`A57Y4=D!V`=Y4=D"&`7Y4=D"6`1Y4=D"F`+Y4=D"V`%Y4>T#`B0 +M#T_Y!P$.!?_Y!P$>!5/T^0#_D'`9X/[O7I`"*?`P1P2O/X`$Y3_T_Y`"*._PY5;T<`,"%5X" +M%5>0`A57 +MD$RQX)!,OO"03+C@D$R_\.203+'PD$RYX)!,N/"M5Z]6$@NJD`04=(#PY)!P +M$_#E5O1P`P(57@(55Y!P$.#U*G4]`W4^'^3U+ZU7KU82"ZJ0!!1T@/#DD'`3 +M\.56]'`#`A5>`A57D!``X/57Y/58]5F0$`/@M"@%=5@!@#R0$`/@M#`%=5@" +M@#"0$`/@M#,%=5@$@"20$`/@M#4,D!`"X+1R!758"(`1D!`#X+0U"I`0`N"T +MDP-U6!#E6##A&9`%".!$`?#]D`4%X%3[\$0$\.U4_I`%"/!U.QCD]2;U)\(< +MPAOU3O5/=3K_=3S_K5>O5A(+JI!P-G0W\*-T,O"0!`'@1`'PPA;D]5SU6O5; +MD'`P\*/P]2K"%Y`$%'2`\.200`A57D!``X)`0+/"0$"]T0/"0` +M`G\1D`4![_"C=`'P=`/P_Q(-2(#`D'`0X/^0<#+@3Y`%`/#E6%0/8`1_%X`" +M?Q&0!0'O\*-T`?!T`_#_$@U(D!``X)`0+/"0$"]T?_#D_:]6$@NJD`04=(#P +MY)!P$_`BD'`0X"3_DDK2!:U7KU82"ZJ0!!1T@/#DD'`3\.56]&!Y@'"0#U7*U7KU82"ZJ0!!1T@/"0<##E6O"CY5OPY/5:]5N0`D_Y(7D'`0X/5=K5>O5A(+JI`$%'2`\#`7$Y`0`."0$"SPD!`O +MX%3P]5=%7?#DD'`3\.56]&`'D'`EX$0!\"(BY3Y%/6`*Y3X5/G`*%3V`!G4] +M`W4^'^4^13U@`P(6#N4J<`,"%@YTH"4O]8+D-$SU@^!@>G]^$A<^[U3^1`+] +M?WX2%R3E+W\`)>#^[R0`]8)T33ZO@I!,J/"C[_#D]5;U5W]_$A<^D$RHX/JC +MX"57]8+J-5;U@^_P!5?E5W`"!5;#E(#E5I0!0-A_?A(7/N]$`_U_?A(7)'2@ +M)2_U@N0T3/6#Y/`%+^4OM`@#Y/4OY3M@!!4[@`-U._[E.W`((`<%,!L"T@?E +M4W`:,&`)LDTP300%1L($Y4]%3F`(Y4\53W`"%4XB(N4Q).Y@#Q1@$!1@$B0$ +M!5/_^0D`(I +M\#!'!*\_@`3E/_3_D`(H[_#"%#`68,*OD!`$X/57D`(HX%0%]5?E7&0!<"'E +M5Y`0!##@!N!4^_"`!.!$!/#E5S#B,05;Y5MP*P5:@"?E5S#@&^5_PHW0+\)`0'.#U6)`0'N`@X?.O6"+"2\),Y402"K87 +M>0`8!P08`P@7XQ`7C2`7K6`7OJ```!@)A4A#A4I"A4Q>Y4=D!F`#`A@)@!OE +M2,14#_5#Y4K$5`_U0N5,Q%0/]5[E1V0&<&%30P^`7(5)0X5+0H5-7N5'9`9P +M38`;Y4G$5`_U0^5+Q%0/]4+E3<14#_5>Y4=D!G`PY4-4#T00]4.`)N5'9`1@ +M!>5'M`4&0UX$=4()Y4>T!A#E0U0/1##U0X`&TDN``M),Y/4EY4+$5/#_Y4-4 +M#T_U7])@(M(5Y4\.5?5`_U+>4E5?5##_OS`1Y25P!74E#(`"%272;-)M@`_E7S#F!L)LTFV`!-)L +MPFWE1V0#<"$P2P;";-)M@!CE)7`#,$P1PDSE)7`%=24'@`(5)=)LTFWE1[0) +M%.5$(.,+Y3ID`F`%Y3JT`P3";-)MY4>T"A/E.K0!!L)LTFV`".4Z<`32;,)M +M(&D'Y5X@X`*R:"!K!^5>(.$"LFH@;0?E7B#B`K)L=2Y`(&D$HFB`)C!H!N5& +MHN*`'>5>(.`$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG.25>(.($?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG&2<)`0`."0 +M$"SPD!`#X,.4,$`9X&0R8!2B<9)WHG"2=N4N$Q-4/_4NPG?2=C`7#5,N\.4N +M15V0$"_P@`:0$"_E+O#E1V0&<$>0`BC@,$<#_X`"]/^//Y`"*>!4_O#E0\14 +M#Q1@#"3^8`PD`W`3POB`#]+X@`OE1C#B`].``<.2^#!'!:\_`AN4Y3_T_P(; +ME.5'9`=@#^5'9`A@">5'9`E@`P(;`I`"*.`P1P/_@`+T_X\_D`(IX%3\\.4Z +M%&`B%&`E%&`M)/Q@223Y8!0D#G!0Y483$U0_=?`#A.7P)/^`.M+YPOB`/N5& +M,.(#TX`=PX`:Y48PX@U4.,.4,%`&?@!_`8`$?@!_`.Y/)/^2^,+Y@!/E1C#B +M`].``<.2^<+X@`3"^,+Y,$<$KS^`!.4_]/\"&Y3E1V0,8`GE1V0+8`,"&YF0 +M`BC@,$<#_X`"]/^//Y`"*>!4_?#E.A1@(!1@(11@*R3\8$4D^6`2)`YP2N5& +M$Q-4/W7P`X3E\(`ITOF`.N5&,.(#TX`!PY+Y@"WE1C#B#50XPY0P4`9^`'\! +M@`1^`'\`[D\D_Y+Y@`_E1C#B`].``<.2^8`"PODP1P2O/X`$Y3_T_Y`"*._P +M(N5'M`L0D`(IX%3K\.4_5.M%1?4_(N20`BGP,$<$KT6`!.5%]/^0`BCO\"*/ +M4-)9(H]4TE@BY/5BPJ_E411@2Q1@;"0"8`,"'-S26755`9`"HN!4?_"CX"#G +M(Y`$-."T`ARCX+0"%Z/@M`(2?R`2&\60$`3@5//P=5$!`AS9`!BG1^\)`!EO"0$@1T"O"0$RC@D'`:\)`3*>"0!4\X`1 +MX%3[\(`4Y3STD!,J8`C@5/)%//"`!.!4^O"0!`'@5/WP=6(!=54"Y/51@`GE +M4'`%=6(#]5'E8F`5P@'D]5'"6:UBKT`2':GE8K0#`M(#TJ\BPJ\P`1+DD`&6 +M\/51PEG"`7T"KT`2':GE4A1@#`1@`P(=IG52`755`Y`$`>!$#O#E6%088!Z0 +M3^=!0N]8+D +M-'#U@^"T_QET%"[U@N0T\)`0'.#U8I`0'N`@X?.0$!S@ +MD'`H\)`0'>"0<"GPD!`>X)!P*O`P2@>0<"3@1`'PP@72KR(@'%I]!1(?"03+CPTAS"!R)]`7^X$A03++@E29`$9!,L>`$\)!,N.!@&N`4\(`5 +MD$RYX/^03+C@PY]0")!,N>"03+CPY/4F]2=]!7^X$A Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 43C048FE; Tue, 31 Dec 2013 12:24:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2FBC01D71; Tue, 31 Dec 2013 12:24:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBVCOdiS080586; Tue, 31 Dec 2013 12:24:39 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBVCOc75080584; Tue, 31 Dec 2013 12:24:38 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201312311224.rBVCOc75080584@svn.freebsd.org> From: Glen Barber Date: Tue, 31 Dec 2013 12:24:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260126 - in stable/10: . sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 12:24:39 -0000 Author: gjb Date: Tue Dec 31 12:24:38 2013 New Revision: 260126 URL: http://svnweb.freebsd.org/changeset/base/260126 Log: MFC r260125: Bump copyright year. Happy New Year 2014! Sponsored by: The FreeBSD Foundation Modified: stable/10/COPYRIGHT stable/10/sys/sys/copyright.h Directory Properties: stable/10/ (props changed) Modified: stable/10/COPYRIGHT ============================================================================== --- stable/10/COPYRIGHT Tue Dec 31 12:18:10 2013 (r260125) +++ stable/10/COPYRIGHT Tue Dec 31 12:24:38 2013 (r260126) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2013 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: stable/10/sys/sys/copyright.h ============================================================================== --- stable/10/sys/sys/copyright.h Tue Dec 31 12:18:10 2013 (r260125) +++ stable/10/sys/sys/copyright.h Tue Dec 31 12:24:38 2013 (r260126) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 1992-2013 The FreeBSD Project. All rights reserved. + * Copyright (C) 1992-2014 The FreeBSD Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -30,7 +30,7 @@ /* FreeBSD */ #define COPYRIGHT_FreeBSD \ - "Copyright (c) 1992-2013 The FreeBSD Project.\n" + "Copyright (c) 1992-2014 The FreeBSD Project.\n" /* Foundation */ #define TRADEMARK_Foundation \ From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 17:29:03 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C9F36D69; Tue, 31 Dec 2013 17:29:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B4E54121A; Tue, 31 Dec 2013 17:29:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBVHT3Hs098543; Tue, 31 Dec 2013 17:29:03 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBVHT3NW098542; Tue, 31 Dec 2013 17:29:03 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201312311729.rBVHT3NW098542@svn.freebsd.org> From: Peter Wemm Date: Tue, 31 Dec 2013 17:29:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260135 - stable/10/sys/sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 17:29:03 -0000 Author: peter Date: Tue Dec 31 17:29:03 2013 New Revision: 260135 URL: http://svnweb.freebsd.org/changeset/base/260135 Log: Bump __FreeBSD_version for MFC of r259951 - don't coalesce map entries for vm_map_stack(). Modified: stable/10/sys/sys/param.h Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Tue Dec 31 16:01:17 2013 (r260134) +++ stable/10/sys/sys/param.h Tue Dec 31 17:29:03 2013 (r260135) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1000701 /* Master, propagated to newvers */ +#define __FreeBSD_version 1000702 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 20:15:24 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3A30A6CC; Tue, 31 Dec 2013 20:15:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 084F11DB0; Tue, 31 Dec 2013 20:15:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBVKFNSh063023; Tue, 31 Dec 2013 20:15:23 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBVKFMKS063011; Tue, 31 Dec 2013 20:15:22 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201312312015.rBVKFMKS063011@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Tue, 31 Dec 2013 20:15:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260139 - in stable/10/contrib/gcc: . config/rs6000 cp doc X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 20:15:24 -0000 Author: pfg Date: Tue Dec 31 20:15:21 2013 New Revision: 260139 URL: http://svnweb.freebsd.org/changeset/base/260139 Log: MFC r259525, r259526, r259529 gcc: small merges from upstream fix ICE in rs6000 when using -fno-trapping-math. Solves GCC-PR target/30485 Solve GCC issues: PR middle-end/32602 PR middle-end/32603 Updates the to documentation and processing improvement. Obtained from: gcc 4.3 (rev. 120902, 120902, 119427, 126278, 126422; GPLv2) Modified: stable/10/contrib/gcc/ChangeLog.gcc43 stable/10/contrib/gcc/calls.c stable/10/contrib/gcc/config/rs6000/rs6000.c stable/10/contrib/gcc/cp/ChangeLog.gcc43 stable/10/contrib/gcc/cp/decl.c stable/10/contrib/gcc/cp/method.c stable/10/contrib/gcc/cp/parser.c stable/10/contrib/gcc/doc/cppopts.texi stable/10/contrib/gcc/doc/invoke.texi Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/gcc/ChangeLog.gcc43 ============================================================================== --- stable/10/contrib/gcc/ChangeLog.gcc43 Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/ChangeLog.gcc43 Tue Dec 31 20:15:21 2013 (r260139) @@ -45,6 +45,20 @@ * flags.h (force_align_functions_log): Delete. * toplev.c (force_align_functions_log): Delete. +2007-07-06 Josh Conner (r126422) + + PR middle-end/32602 + PR middle-end/32603 + * calls.c (store_one_arg): Handle arguments which are partially + on the stack when detecting argument overlap. + +2007-07-03 Eric Christopher (r126278) + + * doc/cppopts.texi: Add conflicting option note to -dM. + * doc/invoke.texi: Add note about possible conflicts with + -E for -dCHARS and note that -dM will not produce + any results if there is no machine dependent reorg. + 2007-06-28 Geoffrey Keating (r126088) * doc/invoke.texi (C++ Dialect Options): Document @@ -407,6 +421,12 @@ (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b for CPUs that have PTA_CX16 set. +2007-01-18 Josh Conner (r120902) + + PR target/30485 + * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add + support for UNLE, UNLT, UNGE, and UNGT. + 2007-01-17 Eric Christopher (r120846) * config.gcc: Support core2 processor. Modified: stable/10/contrib/gcc/calls.c ============================================================================== --- stable/10/contrib/gcc/calls.c Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/calls.c Tue Dec 31 20:15:21 2013 (r260139) @@ -4297,6 +4297,7 @@ store_one_arg (struct arg_data *arg, rtx /* expand_call should ensure this. */ gcc_assert (!arg->locate.offset.var + && arg->locate.size.var == 0 && GET_CODE (size_rtx) == CONST_INT); if (arg->locate.offset.constant > i) @@ -4306,7 +4307,21 @@ store_one_arg (struct arg_data *arg, rtx } else if (arg->locate.offset.constant < i) { - if (i < arg->locate.offset.constant + INTVAL (size_rtx)) + /* Use arg->locate.size.constant instead of size_rtx + because we only care about the part of the argument + on the stack. */ + if (i < (arg->locate.offset.constant + + arg->locate.size.constant)) + sibcall_failure = 1; + } + else + { + /* Even though they appear to be at the same location, + if part of the outgoing argument is in registers, + they aren't really at the same location. Check for + this by making sure that the incoming size is the + same as the outgoing size. */ + if (arg->locate.size.constant != INTVAL (size_rtx)) sibcall_failure = 1; } } Modified: stable/10/contrib/gcc/config/rs6000/rs6000.c ============================================================================== --- stable/10/contrib/gcc/config/rs6000/rs6000.c Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/config/rs6000/rs6000.c Tue Dec 31 20:15:21 2013 (r260139) @@ -11738,11 +11738,20 @@ rs6000_emit_vector_compare (enum rtx_cod try_again = true; break; case NE: - /* Treat A != B as ~(A==B). */ + case UNLE: + case UNLT: + case UNGE: + case UNGT: + /* Invert condition and try again. + e.g., A != B becomes ~(A==B). */ { + enum rtx_code rev_code; enum insn_code nor_code; - rtx eq_rtx = rs6000_emit_vector_compare (EQ, op0, op1, - dest_mode); + rtx eq_rtx; + + rev_code = reverse_condition_maybe_unordered (rcode); + eq_rtx = rs6000_emit_vector_compare (rev_code, op0, op1, + dest_mode); nor_code = one_cmpl_optab->handlers[(int)dest_mode].insn_code; gcc_assert (nor_code != CODE_FOR_nothing); Modified: stable/10/contrib/gcc/cp/ChangeLog.gcc43 ============================================================================== --- stable/10/contrib/gcc/cp/ChangeLog.gcc43 Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/cp/ChangeLog.gcc43 Tue Dec 31 20:15:21 2013 (r260139) @@ -66,6 +66,18 @@ * semantics.c (finish_unary_op_expr): Warn only if result overflowed and operands did not. +2006-12-01 Geoffrey Keating (r119427) + + * decl.c (poplevel): Check DECL_INITIAL invariant. + (duplicate_decls): Preserve DECL_INITIAL when eliminating + a new definition in favour of an old declaration. + (start_preparsed_function): Define and document value of + DECL_INITIAL before and after routine. + (finish_function): Check DECL_INITIAL invariant. + * parser.c + (cp_parser_function_definition_from_specifiers_and_declarator): + Skip duplicate function definitions. + 2006-10-31 Geoffrey Keating (r118360) * name-lookup.c (get_anonymous_namespace_name): New. Modified: stable/10/contrib/gcc/cp/decl.c ============================================================================== --- stable/10/contrib/gcc/cp/decl.c Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/cp/decl.c Tue Dec 31 20:15:21 2013 (r260139) @@ -758,7 +758,12 @@ poplevel (int keep, int reverse, int fun leave_scope (); if (functionbody) - DECL_INITIAL (current_function_decl) = block; + { + /* The current function is being defined, so its DECL_INITIAL + should be error_mark_node. */ + gcc_assert (DECL_INITIAL (current_function_decl) == error_mark_node); + DECL_INITIAL (current_function_decl) = block; + } else if (block) current_binding_level->blocks = chainon (current_binding_level->blocks, block); @@ -1635,13 +1640,15 @@ duplicate_decls (tree newdecl, tree oldd } /* If the new declaration is a definition, update the file and - line information on the declaration. */ + line information on the declaration, and also make + the old declaration the same definition. */ if (DECL_INITIAL (old_result) == NULL_TREE && DECL_INITIAL (new_result) != NULL_TREE) { DECL_SOURCE_LOCATION (olddecl) = DECL_SOURCE_LOCATION (old_result) = DECL_SOURCE_LOCATION (newdecl); + DECL_INITIAL (old_result) = DECL_INITIAL (new_result); if (DECL_FUNCTION_TEMPLATE_P (newdecl)) DECL_ARGUMENTS (old_result) = DECL_ARGUMENTS (new_result); @@ -10509,7 +10516,13 @@ check_function_type (tree decl, tree cur For C++, we must first check whether that datum makes any sense. For example, "class A local_a(1,2);" means that variable local_a is an aggregate of type A, which should have a constructor - applied to it with the argument list [1, 2]. */ + applied to it with the argument list [1, 2]. + + On entry, DECL_INITIAL (decl1) should be NULL_TREE or error_mark_node, + or may be a BLOCK if the function has been defined previously + in this translation unit. On exit, DECL_INITIAL (decl1) will be + error_mark_node if the function has never been defined, or + a BLOCK if the function has been defined somewhere. */ void start_preparsed_function (tree decl1, tree attrs, int flags) @@ -10638,24 +10651,6 @@ start_preparsed_function (tree decl1, tr cp_apply_type_quals_to_decl (cp_type_quals (restype), resdecl); } - /* Initialize RTL machinery. We cannot do this until - CURRENT_FUNCTION_DECL and DECL_RESULT are set up. We do this - even when processing a template; this is how we get - CFUN set up, and our per-function variables initialized. - FIXME factor out the non-RTL stuff. */ - bl = current_binding_level; - allocate_struct_function (decl1); - current_binding_level = bl; - - /* Even though we're inside a function body, we still don't want to - call expand_expr to calculate the size of a variable-sized array. - We haven't necessarily assigned RTL to all variables yet, so it's - not safe to try to expand expressions involving them. */ - cfun->x_dont_save_pending_sizes_p = 1; - - /* Start the statement-tree, start the tree now. */ - DECL_SAVED_TREE (decl1) = push_stmt_list (); - /* Let the user know we're compiling this function. */ announce_function (decl1); @@ -10701,9 +10696,33 @@ start_preparsed_function (tree decl1, tr maybe_apply_pragma_weak (decl1); } - /* Reset these in case the call to pushdecl changed them. */ + /* Reset this in case the call to pushdecl changed it. */ current_function_decl = decl1; - cfun->decl = decl1; + + gcc_assert (DECL_INITIAL (decl1)); + + /* This function may already have been parsed, in which case just + return; our caller will skip over the body without parsing. */ + if (DECL_INITIAL (decl1) != error_mark_node) + return; + + /* Initialize RTL machinery. We cannot do this until + CURRENT_FUNCTION_DECL and DECL_RESULT are set up. We do this + even when processing a template; this is how we get + CFUN set up, and our per-function variables initialized. + FIXME factor out the non-RTL stuff. */ + bl = current_binding_level; + allocate_struct_function (decl1); + current_binding_level = bl; + + /* Even though we're inside a function body, we still don't want to + call expand_expr to calculate the size of a variable-sized array. + We haven't necessarily assigned RTL to all variables yet, so it's + not safe to try to expand expressions involving them. */ + cfun->x_dont_save_pending_sizes_p = 1; + + /* Start the statement-tree, start the tree now. */ + DECL_SAVED_TREE (decl1) = push_stmt_list (); /* If we are (erroneously) defining a function that we have already defined before, wipe out what we knew before. */ @@ -11212,6 +11231,10 @@ finish_function (int flags) which then got a warning when stored in a ptr-to-function variable. */ gcc_assert (building_stmt_tree ()); + /* The current function is being defined, so its DECL_INITIAL should + be set, and unless there's a multiple definition, it should be + error_mark_node. */ + gcc_assert (DECL_INITIAL (fndecl) == error_mark_node); /* For a cloned function, we've already got all the code we need; there's no need to add any extra bits. */ Modified: stable/10/contrib/gcc/cp/method.c ============================================================================== --- stable/10/contrib/gcc/cp/method.c Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/cp/method.c Tue Dec 31 20:15:21 2013 (r260139) @@ -407,10 +407,6 @@ use_thunk (tree thunk_fndecl, bool emit_ } } - /* The back-end expects DECL_INITIAL to contain a BLOCK, so we - create one. */ - DECL_INITIAL (thunk_fndecl) = make_node (BLOCK); - /* Set up cloned argument trees for the thunk. */ t = NULL_TREE; for (a = DECL_ARGUMENTS (function); a; a = TREE_CHAIN (a)) @@ -424,17 +420,23 @@ use_thunk (tree thunk_fndecl, bool emit_ } a = nreverse (t); DECL_ARGUMENTS (thunk_fndecl) = a; - BLOCK_VARS (DECL_INITIAL (thunk_fndecl)) = a; if (this_adjusting && targetm.asm_out.can_output_mi_thunk (thunk_fndecl, fixed_offset, virtual_value, alias)) { const char *fnname; + tree fn_block; + current_function_decl = thunk_fndecl; DECL_RESULT (thunk_fndecl) = build_decl (RESULT_DECL, 0, integer_type_node); fnname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0); + /* The back-end expects DECL_INITIAL to contain a BLOCK, so we + create one. */ + fn_block = make_node (BLOCK); + BLOCK_VARS (fn_block) = a; + DECL_INITIAL (thunk_fndecl) = fn_block; init_function_start (thunk_fndecl); current_function_is_thunk = 1; assemble_start_function (thunk_fndecl, fnname); Modified: stable/10/contrib/gcc/cp/parser.c ============================================================================== --- stable/10/contrib/gcc/cp/parser.c Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/cp/parser.c Tue Dec 31 20:15:21 2013 (r260139) @@ -15637,6 +15637,16 @@ cp_parser_function_definition_from_speci cp_parser_skip_to_end_of_block_or_statement (parser); fn = error_mark_node; } + else if (DECL_INITIAL (current_function_decl) != error_mark_node) + { + /* Seen already, skip it. An error message has already been output. */ + cp_parser_skip_to_end_of_block_or_statement (parser); + fn = current_function_decl; + current_function_decl = NULL_TREE; + /* If this is a function from a class, pop the nested class. */ + if (current_class_name) + pop_nested_class (); + } else fn = cp_parser_function_definition_after_declarator (parser, /*inline_p=*/false); Modified: stable/10/contrib/gcc/doc/cppopts.texi ============================================================================== --- stable/10/contrib/gcc/doc/cppopts.texi Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/doc/cppopts.texi Tue Dec 31 20:15:21 2013 (r260139) @@ -645,6 +645,10 @@ touch foo.h; cpp -dM foo.h @noindent will show all the predefined macros. +If you use @option{-dM} without the @option{-E} option, @option{-dM} is +interpreted as a synonym for @option{-fdump-rtl-mach}. +@xref{Debugging Options, , ,gcc}. + @item D @opindex dD Like @samp{M} except in two respects: it does @emph{not} include the Modified: stable/10/contrib/gcc/doc/invoke.texi ============================================================================== --- stable/10/contrib/gcc/doc/invoke.texi Tue Dec 31 19:39:15 2013 (r260138) +++ stable/10/contrib/gcc/doc/invoke.texi Tue Dec 31 20:15:21 2013 (r260139) @@ -3683,7 +3683,9 @@ Says to make debugging dumps during comp compiler. The file names for most of the dumps are made by appending a pass number and a word to the @var{dumpname}. @var{dumpname} is generated from the name of the output file, if explicitly specified and it is not -an executable, otherwise it is the basename of the source file. +an executable, otherwise it is the basename of the source file. These +switches may have different effects when @option{-E} is used for +preprocessing. Most debug dumps can be enabled either passing a letter to the @option{-d} option, or with a long @option{-fdump-rtl} switch; here are the possible @@ -3818,7 +3820,7 @@ Dump after modulo scheduling, to @file{@ @opindex dM @opindex fdump-rtl-mach Dump after performing the machine dependent reorganization pass, to -@file{@var{file}.155r.mach}. +@file{@var{file}.155r.mach} if that pass exists. @item -dn @itemx -fdump-rtl-rnreg From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 21:56:03 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1141C4C4; Tue, 31 Dec 2013 21:56:03 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D688C1348; Tue, 31 Dec 2013 21:56:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBVLu2gL000498; Tue, 31 Dec 2013 21:56:02 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBVLu2uT000494; Tue, 31 Dec 2013 21:56:02 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201312312156.rBVLu2uT000494@svn.freebsd.org> From: Rick Macklem Date: Tue, 31 Dec 2013 21:56:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260143 - in stable/10/sys/fs: nfs nfsclient X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 21:56:03 -0000 Author: rmacklem Date: Tue Dec 31 21:56:02 2013 New Revision: 260143 URL: http://svnweb.freebsd.org/changeset/base/260143 Log: MFC: r259801 The NFSv4 client was passing both the p and cred arguments to nfsv4_fillattr() as NULLs for the Getattr callback. This caused nfsv4_fillattr() to not fill in the Change attribute for the reply. I believe this was a violation of the RFC, but had little effect on server behaviour. This patch passes a non-NULL p argument to fix this. Modified: stable/10/sys/fs/nfs/nfs_commonsubs.c stable/10/sys/fs/nfsclient/nfs_clstate.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- stable/10/sys/fs/nfs/nfs_commonsubs.c Tue Dec 31 21:37:24 2013 (r260142) +++ stable/10/sys/fs/nfs/nfs_commonsubs.c Tue Dec 31 21:56:02 2013 (r260143) @@ -2011,7 +2011,12 @@ nfsv4_fillattr(struct nfsrv_descript *nd * First, set the bits that can be filled and get fsinfo. */ NFSSET_ATTRBIT(retbitp, attrbitp); - /* If p and cred are NULL, it is a client side call */ + /* + * If both p and cred are NULL, it is a client side setattr call. + * If both p and cred are not NULL, it is a server side reply call. + * If p is not NULL and cred is NULL, it is a client side callback + * reply call. + */ if (p == NULL && cred == NULL) { NFSCLRNOTSETABLE_ATTRBIT(retbitp); aclp = saclp; Modified: stable/10/sys/fs/nfsclient/nfs_clstate.c ============================================================================== --- stable/10/sys/fs/nfsclient/nfs_clstate.c Tue Dec 31 21:37:24 2013 (r260142) +++ stable/10/sys/fs/nfsclient/nfs_clstate.c Tue Dec 31 21:56:02 2013 (r260143) @@ -3279,7 +3279,7 @@ nfscl_docb(struct nfsrv_descript *nd, NF FREE((caddr_t)nfhp, M_NFSFH); if (!error) (void) nfsv4_fillattr(nd, NULL, NULL, NULL, &va, - NULL, 0, &rattrbits, NULL, NULL, 0, 0, 0, 0, + NULL, 0, &rattrbits, NULL, p, 0, 0, 0, 0, (uint64_t)0); break; case NFSV4OP_CBRECALL: From owner-svn-src-stable-10@FreeBSD.ORG Tue Dec 31 22:00:26 2013 Return-Path: Delivered-To: svn-src-stable-10@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 25D3266E; Tue, 31 Dec 2013 22:00:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E8EB51360; Tue, 31 Dec 2013 22:00:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rBVM0Piq003455; Tue, 31 Dec 2013 22:00:25 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id rBVM0PX3003454; Tue, 31 Dec 2013 22:00:25 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201312312200.rBVM0PX3003454@svn.freebsd.org> From: Rick Macklem Date: Tue, 31 Dec 2013 22:00:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r260144 - stable/10/sys/fs/nfsserver X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Dec 2013 22:00:26 -0000 Author: rmacklem Date: Tue Dec 31 22:00:25 2013 New Revision: 260144 URL: http://svnweb.freebsd.org/changeset/base/260144 Log: MFC: r259845 An intermittent problem with NFSv4 exporting of ZFS snapshots was reported to the freebsd-fs mailing list. I believe the problem was caused by the Readdir operation using VFS_VGET() for a snapshot file entry instead of VOP_LOOKUP(). This would not occur for NFSv3, since it will do a VFS_VGET() of "." which fails with ENOTSUPP at the beginning of the directory, whereas NFSv4 does not check "." or "..". This patch adds a call to VFS_VGET() for the directory being read to check for ENOTSUPP. I also observed that the mount_on_fileid and fsid attributes were not correct at the snapshot's auto mountpoints when looking at packet traces for the Readdir. This patch fixes the attributes by doing a check for different v_mount structure, even if the vnode v_mountedhere is not set. Modified: stable/10/sys/fs/nfsserver/nfs_nfsdport.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- stable/10/sys/fs/nfsserver/nfs_nfsdport.c Tue Dec 31 21:56:02 2013 (r260143) +++ stable/10/sys/fs/nfsserver/nfs_nfsdport.c Tue Dec 31 22:00:25 2013 (r260144) @@ -1984,6 +1984,27 @@ again: } /* + * Check to see if entries in this directory can be safely acquired + * via VFS_VGET() or if a switch to VOP_LOOKUP() is required. + * ZFS snapshot directories need VOP_LOOKUP(), so that any + * automount of the snapshot directory that is required will + * be done. + * This needs to be done here for NFSv4, since NFSv4 never does + * a VFS_VGET() for "." or "..". + */ + if (not_zfs == 0) { + r = VFS_VGET(mp, at.na_fileid, LK_SHARED, &nvp); + if (r == EOPNOTSUPP) { + usevget = 0; + cn.cn_nameiop = LOOKUP; + cn.cn_lkflags = LK_SHARED | LK_RETRY; + cn.cn_cred = nd->nd_cred; + cn.cn_thread = p; + } else if (r == 0) + vput(nvp); + } + + /* * Save this position, in case there is an error before one entry * is created. */ @@ -2120,6 +2141,22 @@ again: if (!r) r = nfsvno_getattr(nvp, nvap, nd->nd_cred, p, 1); + if (r == 0 && not_zfs == 0 && + nfsrv_enable_crossmntpt != 0 && + (nd->nd_flag & ND_NFSV4) != 0 && + nvp->v_type == VDIR && + vp->v_mount != nvp->v_mount) { + /* + * For a ZFS snapshot, there is a + * pseudo mount that does not set + * v_mountedhere, so it needs to + * be detected via a different + * mount structure. + */ + at_root = 1; + if (new_mp == mp) + new_mp = nvp->v_mount; + } } } else { nvp = NULL;