<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f5e04876 - MFC r345203,r345205,r345353,r345645,r345708,r345709,r345735,r345770,r346081,r346270,r346574,r346576:</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#f5e04876</link>
        <description>MFC r345203,r345205,r345353,r345645,r345708,r345709,r345735,r345770,r346081,r346270,r346574,r346576:r345203:Initial googlemock/googletest integration into the build/FreeBSD test suiteThis initial integration takes googlemock/googletest release 1.8.1, integratesthe library, tests, and sample unit tests into the build.googlemock/googletest&apos;s inclusion is optionally available via `MK_GOOGLETEST`.`MK_GOOGLETEST` is dependent on `MK_TESTS` and is enabled by default whenbuilt with a C++11 capable toolchain.Google tests can be specified via the `GTESTS` variable, which, in comparisonwith the other test drivers, is more simplified/streamlined, as Googletest onlysupports C++ tests; not raw C or shell tests (C tests can be written in C++using the standard embedding methods).No dependent libraries are assumed for the tests. One must specify `gmock`,`gmock_main`, `gtest`, or `gtest_main`, via `LIBADD` for the program.More information about googlemock and googletest can be found on theGoogletest [project page](https://github.com/google/googletest), and the[GoogleMock](https://github.com/google/googletest/blob/v1.8.x/googlemock/docs/Documentation.md)and[GoogleTest](https://github.com/google/googletest/tree/v1.8.x/googletest/docs)docs.These tests are originally integrated into the build as plain driver tests, butwill be natively integrated into Kyua in a later version.Known issues/Errata:* [WhenDynamicCastToTest.AmbiguousCast fails on FreeBSD](https://github.com/google/googletest/issues/2172)r345205:Integrate cddl/usr.sbin/zfds/tests into the FreeBSD test suiteThis change integrates the unit tests for zfsd into the test suite using theintegration method described in r345203.This change removes the `LOCALBASE` includes added for the port version ofgooglemock/googletest, as well as unnecessary `LIBADD`/`DPADD` and `CXXFLAGS`defines, which are included in the `GTEST_CXXFLAGS` variable, as part ofr345203.r345353 (by asomers):googletest: backport GTEST_SKIP to googletest 1.8.1This commit backports revisions 00938b2b228f3b70d3d9e51f29a1505bdad43f1e and59f90a338bce2376b540ee239cf4e269bf6d68ad from googletest&apos;s master branch toour included version of googletest, which is based on 1.8.1. It adds theGTEST_SKIP feature, which is very useful for a project like FreeBSD wheresome tests depend on particular system configurations.Obtained from:	github.com/google/googletestr345645:Spam CXXFLAGS with `-I${DESTDIR}/usr/include/private`, instead of GTEST_CXXFLAGSThis makes it easier for googletest users to leverage googletest, instead offorcing them to plug GTEST_CXXFLAGS into CXXFLAGS manually (resulting inunnecessary duplication).I will be following this up with a more proper fix in src.libnames.mk, assrc.libnames.mk should be automatically adding this directory toCFLAGS/CXXFLAGS when private libraries are referenced. Not doing so can resultin mismatches between base-provided private library&apos;s and ports-providedlibrary&apos;s headers.While here, tweak the comment to clarify what the intent is behind spammingCXXFLAGS.r345708:Standardize `-std=c++* as `CXXSTD`CXXSTD was added as the C++ analogue to CSTD.CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`,otherwise for older versions of g++.This change standardizes the CXXSTD variable, originally added togoogletest.test.inc.mk as part of r345203.As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`.Notes:This value is not sanity checked in bsd.sys.mk, however, given the twomost used C++ compilers on FreeBSD (clang++ and g++) support both modes, it islikely to work with both toolchains. This method will be refined in the futureto support more variants of C++, as not all versions of clang++ and g++ (forinstance) support C++14, C++17, etc.Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD.Example:Before this commit:```CXXFLAGS+=	-std=c++14```After this commit:```CXXSTD=	c++14```Relnotes:	yesTested with:	make tinderboxr345709:Allow users to override CSTD/CXXSTD on a per-prog basisThe current logic for CSTD/CXXSTD requires homogenity as far as thesupported C/C++ standards, which is a sensible default. However, whendealing with differing versions of C++, some code may compile with C++11, butnot C++17 (for instance). So in order to avoid having people convert over theircode to the new standard, give the users the ability to specify the standard ona per-program basis.This will allow a user to override the supporting standard for a set ofprograms, mixing C++11 with C++14 (for instance).Apprved by:	emaste (mentor)r345735:Allow programs to set `NO_SHARED` on a per-PROG basisThis is particularly useful when installing programs for tests that need to belinked statically, e.g., mini-me from capsicum-test, which is linked staticallyto avoid the dynamic library lookup in the upstream project.r345770:Import proof-of-concept for handling `GTEST_SKIP()` in `Environment::SetUp`Per the upstream pull-request [1]:```  gtest prior to this change would completely ignore `GTEST_SKIP()` if  called in `Environment::SetUp()`, instead of bailing out early, unlike  `Test::SetUp()`, which would cause the tests themselves to be skipped.  The only way (prior to this change) to skip the tests would be to  trigger a fatal error via `GTEST_FAIL()`.  Desirable behavior, in this case, when dealing with  `Environment::SetUp()` is to check for prerequisites on a system  (example, kernel supports a particular featureset, e.g., capsicum), and  skip the tests. The alternatives prior to this change would be  undesirable:  - Failing sends the wrong message to the test user, as the result of the    tests is indeterminate, not failed.  - Having to add per-test class abstractions that override `SetUp()` to    test for the capsicum feature set, then skip all of the tests in their    respective SetUp fixtures, would be a lot of human and computational    work; checking for the feature would need to be done for all of the    tests, instead of once for all of the tests.  For those reasons, making `Environment::SetUp()` handle `GTEST_SKIP()`,  by not executing the testcases, is the most desirable solution.  In order to properly diagnose what happened when running the tests if  they are skipped, print out the diagnostics in an ad hoc manner.  Update the documentation to note this change and integrate a new test,  gtest_skip_in_environment_setup_test, into the test suite.  This change addresses #2189.  Signed-off-by: Enji Cooper &lt;yaneurabeya@gmail.com&gt;```The goal with my merging in this change is to avoid requiring extensiverefactoring/retesting of test suites when ensuring prerequisites are met,e.g., checking for a CAPABILITIES-enabled kernel before running capsicum-test(see D19758 for more details).The proof-of-concept is being imported before accepted by the upstreamproject due to the fact that the upstream project is undergoing a potentialdevelopment freeze and the maintainers aren&apos;t responding to my PR.1. https://github.com/google/googletest/pull/2203r346081 (by trasz):Make zfsd(8) build obey CFLAGS.Obtained from:	CheriBSDr346270 (by trasz):Drop -g from CFLAGS for zfsd(8).  No idea why it was ever there.r346574:Rework CXXSTD setting via r345708This change allows the user to once again override the C++ standard, restoringhigh-level pre-r345708 behavior.This also unbreaks building lib/ofed/libibnetdisc/Makefile with a non-C++11capable compiler, e.g., g++ 4.2.1, as the library supported being built witholder C++ standards.r346576:Fix up CXXSTD support originally added in r345708r345708 worked for the base system, but unfortunately, caused a lot ofdisruption for third-party packages that relied on C++, since bsd.sys.mk isused by applications outside the base system. The defaults picked didn&apos;t matchthe compiler&apos;s defaults and broke some builds that didn&apos;t specify a standard,as well as some that overrode the value by setting `-std=gnu++14` (forexample) manually.This change takes a more relaxed approach to appending `-std=${CXXSTD}` toCXXFLAGS, by only doing so when the value is specified, as opposed tooverriding the standard set by an end-user. This avoids the need for havingto bake NOP default into bsd.sys.mk for supported compiler-toolchainversions.In order to make this change possible, add CXXSTD to Makefile snippets whichrelied on the default value (c++11) added in r345708.

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Thu, 23 May 2019 01:09:10 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>df407fbc - Revert r348136</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#df407fbc</link>
        <description>Revert r348136I accidentally committed some unrelated local changes to`.../tests/sys/opencrypto` along with this MFC set.

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Thu, 23 May 2019 00:59:05 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>e787ffab - MFC r345203,r345205,r345353,r345645,r345708,r345709,r345735,r345770,r346574,r346576:</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#e787ffab</link>
        <description>MFC r345203,r345205,r345353,r345645,r345708,r345709,r345735,r345770,r346574,r346576:r345203:Initial googlemock/googletest integration into the build/FreeBSD test suiteThis initial integration takes googlemock/googletest release 1.8.1, integratesthe library, tests, and sample unit tests into the build.googlemock/googletest&apos;s inclusion is optionally available via `MK_GOOGLETEST`.`MK_GOOGLETEST` is dependent on `MK_TESTS` and is enabled by default whenbuilt with a C++11 capable toolchain.Google tests can be specified via the `GTESTS` variable, which, in comparisonwith the other test drivers, is more simplified/streamlined, as Googletest onlysupports C++ tests; not raw C or shell tests (C tests can be written in C++using the standard embedding methods).No dependent libraries are assumed for the tests. One must specify `gmock`,`gmock_main`, `gtest`, or `gtest_main`, via `LIBADD` for the program.More information about googlemock and googletest can be found on theGoogletest [project page](https://github.com/google/googletest), and the[GoogleMock](https://github.com/google/googletest/blob/v1.8.x/googlemock/docs/Documentation.md)and[GoogleTest](https://github.com/google/googletest/tree/v1.8.x/googletest/docs)docs.These tests are originally integrated into the build as plain driver tests, butwill be natively integrated into Kyua in a later version.Known issues/Errata:* [WhenDynamicCastToTest.AmbiguousCast fails on FreeBSD](https://github.com/google/googletest/issues/2172)r345205:Integrate cddl/usr.sbin/zfds/tests into the FreeBSD test suiteThis change integrates the unit tests for zfsd into the test suite using theintegration method described in r345203.This change removes the `LOCALBASE` includes added for the port version ofgooglemock/googletest, as well as unnecessary `LIBADD`/`DPADD` and `CXXFLAGS`defines, which are included in the `GTEST_CXXFLAGS` variable, as part ofr345203.r345353 (by asomers):googletest: backport GTEST_SKIP to googletest 1.8.1This commit backports revisions 00938b2b228f3b70d3d9e51f29a1505bdad43f1e and59f90a338bce2376b540ee239cf4e269bf6d68ad from googletest&apos;s master branch toour included version of googletest, which is based on 1.8.1. It adds theGTEST_SKIP feature, which is very useful for a project like FreeBSD wheresome tests depend on particular system configurations.Obtained from:	github.com/google/googletestr345645:Spam CXXFLAGS with `-I${DESTDIR}/usr/include/private`, instead of GTEST_CXXFLAGSThis makes it easier for googletest users to leverage googletest, instead offorcing them to plug GTEST_CXXFLAGS into CXXFLAGS manually (resulting inunnecessary duplication).I will be following this up with a more proper fix in src.libnames.mk, assrc.libnames.mk should be automatically adding this directory toCFLAGS/CXXFLAGS when private libraries are referenced. Not doing so can resultin mismatches between base-provided private library&apos;s and ports-providedlibrary&apos;s headers.While here, tweak the comment to clarify what the intent is behind spammingCXXFLAGS.r345708:Standardize `-std=c++* as `CXXSTD`CXXSTD was added as the C++ analogue to CSTD.CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`,otherwise for older versions of g++.This change standardizes the CXXSTD variable, originally added togoogletest.test.inc.mk as part of r345203.As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`.Notes:This value is not sanity checked in bsd.sys.mk, however, given the twomost used C++ compilers on FreeBSD (clang++ and g++) support both modes, it islikely to work with both toolchains. This method will be refined in the futureto support more variants of C++, as not all versions of clang++ and g++ (forinstance) support C++14, C++17, etc.Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD.Example:Before this commit:```CXXFLAGS+=	-std=c++14```After this commit:```CXXSTD=	c++14```Relnotes:	yesTested with:	make tinderboxr345709:Allow users to override CSTD/CXXSTD on a per-prog basisThe current logic for CSTD/CXXSTD requires homogenity as far as thesupported C/C++ standards, which is a sensible default. However, whendealing with differing versions of C++, some code may compile with C++11, butnot C++17 (for instance). So in order to avoid having people convert over theircode to the new standard, give the users the ability to specify the standard ona per-program basis.This will allow a user to override the supporting standard for a set ofprograms, mixing C++11 with C++14 (for instance).Approved by:	emaste (mentor)r345735:Allow programs to set `NO_SHARED` on a per-PROG basisThis is particularly useful when installing programs for tests that need to belinked statically, e.g., mini-me from capsicum-test, which is linked staticallyto avoid the dynamic library lookup in the upstream project.r345770:Import proof-of-concept for handling `GTEST_SKIP()` in `Environment::SetUp`Per the upstream pull-request [1]:```  gtest prior to this change would completely ignore `GTEST_SKIP()` if  called in `Environment::SetUp()`, instead of bailing out early, unlike  `Test::SetUp()`, which would cause the tests themselves to be skipped.  The only way (prior to this change) to skip the tests would be to  trigger a fatal error via `GTEST_FAIL()`.  Desirable behavior, in this case, when dealing with  `Environment::SetUp()` is to check for prerequisites on a system  (example, kernel supports a particular featureset, e.g., capsicum), and  skip the tests. The alternatives prior to this change would be  undesirable:  - Failing sends the wrong message to the test user, as the result of the    tests is indeterminate, not failed.  - Having to add per-test class abstractions that override `SetUp()` to    test for the capsicum feature set, then skip all of the tests in their    respective SetUp fixtures, would be a lot of human and computational    work; checking for the feature would need to be done for all of the    tests, instead of once for all of the tests.  For those reasons, making `Environment::SetUp()` handle `GTEST_SKIP()`,  by not executing the testcases, is the most desirable solution.  In order to properly diagnose what happened when running the tests if  they are skipped, print out the diagnostics in an ad hoc manner.  Update the documentation to note this change and integrate a new test,  gtest_skip_in_environment_setup_test, into the test suite.  This change addresses #2189.  Signed-off-by: Enji Cooper &lt;yaneurabeya@gmail.com&gt;```The goal with my merging in this change is to avoid requiring extensiverefactoring/retesting of test suites when ensuring prerequisites are met,e.g., checking for a CAPABILITIES-enabled kernel before running capsicum-test(see D19758 for more details).The proof-of-concept is being imported before accepted by the upstreamproject due to the fact that the upstream project is undergoing a potentialdevelopment freeze and the maintainers aren&apos;t responding to my PR.1. https://github.com/google/googletest/pull/2203r346574:Rework CXXSTD setting via r345708This change allows the user to once again override the C++ standard, restoringhigh-level pre-r345708 behavior.This also unbreaks building lib/ofed/libibnetdisc/Makefile with a non-C++11capable compiler, e.g., g++ 4.2.1, as the library supported being built witholder C++ standards.r346576:Fix up CXXSTD support originally added in r345708r345708 worked for the base system, but unfortunately, caused a lot ofdisruption for third-party packages that relied on C++, since bsd.sys.mk isused by applications outside the base system. The defaults picked didn&apos;t matchthe compiler&apos;s defaults and broke some builds that didn&apos;t specify a standard,as well as some that overrode the value by setting `-std=gnu++14` (forexample) manually.This change takes a more relaxed approach to appending `-std=${CXXSTD}` toCXXFLAGS, by only doing so when the value is specified, as opposed tooverriding the standard set by an end-user. This avoids the need for havingto bake NOP default into bsd.sys.mk for supported compiler-toolchainversions.In order to make this change possible, add CXXSTD to Makefile snippets whichrelied on the default value (c++11) added in r345708.

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Thu, 23 May 2019 00:55:28 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>280046b9 - MFC r343599: libc/tests: Add test case for jemalloc/libthr bug fixed/r343566</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#280046b9</link>
        <description>MFC r343599: libc/tests: Add test case for jemalloc/libthr bug fixed/r343566

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Mon, 08 Apr 2019 18:34:43 +0000</pubDate>
        <dc:creator>Kyle Evans &lt;kevans@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>9851b340 - Implement the memset_s(3) function as specified by the C11 ISO/IEC</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#9851b340</link>
        <description>Implement the memset_s(3) function as specified by the C11 ISO/IEC9899:2011 Appendix K 3.7.4.1.Other needed supporting types, defines and constraint_handlerinfrastructure is added as specified in the C11 spec.Submitted by:	Tom Rix &lt;trix@juniper.net&gt;Sponsored by:	Juniper NetworksDiscussed with:	edMFC after:	3 weeksDifferential revision:	https://reviews.freebsd.org/D9903Differential revision:	https://reviews.freebsd.org/D10161

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Thu, 30 Mar 2017 04:57:26 +0000</pubDate>
        <dc:creator>Konstantin Belousov &lt;kib@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>9527fa4f - Remove __HAVE_LONG_DOUBLE #define from t_strtod.c and place it in Makefile</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#9527fa4f</link>
        <description>Remove __HAVE_LONG_DOUBLE #define from t_strtod.c and place it in MakefileThis is to enable support in other testcasesInspired by lib/msun/tests/Makefile .MFC after:	1 week

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Thu, 12 Jan 2017 08:40:52 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b585cd3e - Add __cxa_thread_atexit(3) API implementation.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#b585cd3e</link>
        <description>Add __cxa_thread_atexit(3) API implementation.This is the backing feature to implement C++11 thread storage durationspecified by the thread_local keyword.  A destructor for giventhread-local object is registered to be executed at the threadtermination time using __cxa_thread_atexit().  Libc calls the__cxa_thread_calls_dtors() during exit(3), before finalizers andatexit functions, and libthr calls the function at the threadtermination time, after the stack unwinding and thread-specific keydestruction.There are several uncertainties in the API which lacks a formalspecification.  Among them:- is it allowed to register destructors during destructing;	we allow, but limiting the nesting level.  If too many iterations	detected, a diagnostic is issued to stderr and thread forcibly	terminates for now.- how to handle destructors which belong to an unloading dso;	for now, we ignore destructor calls for such entries, and	issue a diagnostic.  Linux does prevent dso unload until all	threads with destructors from the dso terminated.It is supposed that the diagnostics allow to detect real-worldapplications relying on the above details and possibly adjustour implementation.  Right now the choices were to provide the slimAPI (but that rarely stands the practice test).Tests are added to check generic functionality and to specify some ofthe above implementation choices.Submitted by:	Mahdi Mokhtari &lt;mokhi64_gmail.com&gt;Reviewed by:	theravenDiscussed with:	dim (detection of -std=c++11 supoort for tests)Sponsored by:	The FreeBSD Foundation (my involvement)MFC after:	2 weeksDifferential revisions:	https://reviews.freebsd.org/D7224,    https://reviews.freebsd.org/D7427

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Sat, 06 Aug 2016 13:32:40 +0000</pubDate>
        <dc:creator>Konstantin Belousov &lt;kib@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>430f7286 - Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#430f7286</link>
        <description>Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installedafter r298107Summary of changes:- Replace all instances of FILES/TESTS with ${PACKAGE}FILES. This ensures that  namespacing is kept with FILES appropriately, and that this shouldn&apos;t need  to be repeated if the namespace changes -- only the definition of PACKAGE  needs to be changed- Allow PACKAGE to be overridden by callers instead of forcing it to always be  `tests`. In the event we get to the point where things can be split up  enough in the base system, it would make more sense to group the tests  with the blocks they&apos;re a part of, e.g. byacc with byacc-tests, etc- Remove PACKAGE definitions where possible, i.e. where FILES wasn&apos;t used  previously.- Remove unnecessary TESTSPACKAGE definitions; this has been elided into  bsd.tests.mk- Remove unnecessary BINDIRs used previously with ${PACKAGE}FILES;  ${PACKAGE}FILESDIR is now automatically defined in bsd.test.mk.- Fix installation of files under data/ subdirectories in lib/libc/tests/hash  and lib/libc/tests/net/getaddrinfo- Remove unnecessary .include &lt;bsd.own.mk&gt;s (some opportunistic cleanup)Document the proposed changes in share/examples/tests/tests/... via examplesso it&apos;s clear that ${PACKAGES}FILES is the suggested way forward in terms ofreplacing FILES. share/mk/bsd.README didn&apos;t seem like the appropriate methodof communicating that info.MFC after: never probablyX-MFC with: r298107PR: 209114Relnotes: yesTested with: buildworld, installworld, checkworld; buildworld, packageworldSponsored by: EMC / Isilon Storage Division

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Wed, 04 May 2016 23:20:53 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>43faedc1 - First pass to fix the &apos;tests&apos; packages.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#43faedc1</link>
        <description>First pass to fix the &apos;tests&apos; packages.Sponsored by:	The FreeBSD Foundation

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Tue, 02 Feb 2016 22:26:49 +0000</pubDate>
        <dc:creator>Glen Barber &lt;gjb@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>459d04a5 - Let tsearch()/tdelete() use an AVL tree.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#459d04a5</link>
        <description>Let tsearch()/tdelete() use an AVL tree.The existing implementations of POSIX tsearch() and tdelete() don&apos;tattempt to perform any balancing at all. Testing reveals that inserting100k nodes into a tree sequentially takes approximately one minute on mysystem.Though most other BSDs also don&apos;t use any balanced tree internally, Clibraries like glibc and musl do provide better implementations. glibcuses a red-black tree and musl uses an AVL tree.Red-black trees have the advantage over AVL trees that they only requireO(1) rotations after insertion and deletion, but have the disadvantagethat the tree has a maximum depth of 2*log2(n) instead of 1.44*log2(n).My take is that it&apos;s better to focus on having a lower maximum depth,for the reason that in the case of tsearch() the invocation of thecomparator likely dominates the running time.This change replaces the tsearch() and tdelete() functions by versionsthat create an AVL tree. Compared to musl&apos;s implementation, this versionis different in two different ways:- We don&apos;t keep track of heights; just balances. This is sufficient.  This has the advantage that it reduces the number of nodes that are  being accessed. Storing heights requires us to also access all of the  siblings along the path.- Don&apos;t use any recursion at all. We know that the tree cannot 2^64  elements in size, so the height of the tree can never be larger than  96. Use a 128-bit bitmask to keep track of the path that is computed.  This allows us to iterate over the same path twice, meaning we can  apply rotations from top to bottom.Inserting 100k nodes into a tree now only takes 0.015 seconds. Insertionseems to be twice as fast as glibc, whereas deletion has about the sameperformance. Unlike glibc, it uses a fixed amount of memory.I also experimented with both recursive and iterative bottom-upimplementations of the same algorithm. This iterative top-down versionperforms similar to the recursive bottom-up version in terms of speedand code size.For some reason, the iterative bottom-up algorithm was actually 30%faster for deletion, but has a quadratic memory complexity to keep trackof all the parent pointers.Reviewed by:	jillesObtained from:	https://github.com/NuxiNL/cloudlibcDifferential Revision:	https://reviews.freebsd.org/D4412

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Tue, 22 Dec 2015 18:12:11 +0000</pubDate>
        <dc:creator>Ed Schouten &lt;ed@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>eacae6dc - Fix LDADD/DPADD that should be LIBADD.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#eacae6dc</link>
        <description>Fix LDADD/DPADD that should be LIBADD.Sponsored by:	EMC / Isilon Storage Division

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Fri, 04 Dec 2015 03:17:47 +0000</pubDate>
        <dc:creator>Bryan Drewery &lt;bdrewery@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>98682851 - Integrate tools/regression/lib/libc/stdlib into the FreeBSD test suite</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#98682851</link>
        <description>Integrate tools/regression/lib/libc/stdlib into the FreeBSD test suiteas lib/libc/tests/stdlib- Make the code a bit more style(9) compliant- Convert a sizeof(x)/sizeof(x[0]) to nitemsMFC after: 1 weekSponsored by: EMC / Isilon Storage Division

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Sun, 08 Nov 2015 07:03:17 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b2d48be1 - Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) and</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#b2d48be1</link>
        <description>Refactor the test/ Makefiles after recent changes to bsd.test.mk (r289158) andnetbsd-tests.test.mk (r289151)- Eliminate explicit OBJTOP/SRCTOP setting- Convert all ad hoc NetBSD test integration over to netbsd-tests.test.mk- Remove unnecessary TESTSDIR setting- Use SRCTOP where possible for clarityMFC after: 2 weeksSponsored by: EMC / Isilon Storage Divison

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Mon, 12 Oct 2015 08:16:03 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>2f121787 - Add reachover Makefiles for contrib/netbsd-tests/lib/libc; this adds approximately</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/lib/libc/tests/stdlib/Makefile#2f121787</link>
        <description>Add reachover Makefiles for contrib/netbsd-tests/lib/libc; this adds approximately500 new testcasesVarious TODOs have been sprinkled around the Makefiles for items that even needto be ported (missing features), testcases have issues with building/linking, orissues at runtime.A variant of this code has been tested extensively on amd64 and i38610-STABLE/11-CURRENT for several months without issue. It builds on otherarchitectures, but the code will remain off until I have prove it works onvirtual hardware or real hardware on other architecturesIn collaboration with: pho, Casey Peel &lt;casey.peel@isilon.com&gt;Sponsored by: EMC / Isilon Storage Division

            List of files:
            /freebsd-12.1/lib/libc/tests/stdlib/Makefile</description>
        <pubDate>Tue, 04 Nov 2014 00:56:25 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
</channel>
</rss>
