<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/module/unicode, branch zfs-0.7.0-rc2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=zfs-0.7.0-rc2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=zfs-0.7.0-rc2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2016-08-09T21:40:35Z</updated>
<entry>
<title>Build user-space with different gcc optimization levels</title>
<updated>2016-08-09T21:40:35Z</updated>
<author>
<name>Gvozden Neskovic</name>
<email>neskovic@gmail.com</email>
</author>
<published>2016-07-26T19:08:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=689f093ebcfa0d57895495050d2b470ed2bef52e'/>
<id>urn:sha1:689f093ebcfa0d57895495050d2b470ed2bef52e</id>
<content type='text'>
This fix resolves warnings reported during compiling of user-space
libraries with different gcc optimization levels.

Tested with gcc versions: 4.9.2 (Debian), and 6.1.1 (Fedora).
The patch enables use of following opt levels: O0, O1, O2, O3, Og, Os, Ofast.

List of warnings:

[GCC 4.9.2 -Os]
libzfs_sendrecv.c:3726:26: error: 'clp' may be used uninitialized in this function [-Werror=maybe-uninitialized]

[GCC 4.9.2 -Og]
fs_fletcher.c:323:26: error: 'idx' may be used uninitialized in this function [-Werror=maybe-uninitialized]
dsl_dataset.c:1290:12: error: 'atp' may be used uninitialized in this function [-Werror=maybe-uninitialized]

[GCC 4.9.2 -Ofast]
u8_textprep.c:1310:9: error: 'tc[3ul]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
u8_textprep.c:177:23: error: 'u8t[0ul]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
dsl_dataset.c:2089:37: error: ‘hds’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
dsl_dataset.c:3216:2: error: ‘ds’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
dsl_dataset.c:1591:2: error: ‘ds’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
dsl_dataset.c:3341:2: error: ‘ds’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
vdev_raidz.c:1153:8: error: 'dcount[2]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
vdev_raidz.c:1167:17: error: 'dst[2]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
kernel.c:1005:2: error: ‘resid’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
libzfs_dataset.c:2826:8: error: ‘val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
libzfs_dataset.c:3056:35: error: ‘val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
libzfs_dataset.c:1584:13: error: ‘val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
libzfs_dataset.c:3056:35: error: ‘val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
libzfs_dataset.c:1792:66: error: ‘val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
libzfs_dataset.c:3986:35: error: ‘val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

[GCC 6.1.1]
Resolved in PR #4907

Signed-off-by: Gvozden Neskovic &lt;neskovic@gmail.com&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #4937
</content>
</entry>
<entry>
<title>Support parallel build trees (VPATH builds)</title>
<updated>2015-07-17T20:42:51Z</updated>
<author>
<name>Turbo Fredriksson</name>
<email>turbo@bayour.com</email>
</author>
<published>2014-06-09T21:55:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=47a4a6fd5fa1f1f60bcf6af19e453ecf0292f7d1'/>
<id>urn:sha1:47a4a6fd5fa1f1f60bcf6af19e453ecf0292f7d1</id>
<content type='text'>
Build products from an out of tree build should be written
relative to the build directory.  Sources should be referred
to by their locations in the source directory.

This is accomplished by adding the 'src' and 'obj' variables
for the module Makefile.am, using relative paths to reference
source files, and by setting VPATH when source files are not
co-located with the Makefile.  This enables the following:

  $ mkdir build
  $ cd build
  $ ../configure \
    --with-spl=$HOME/src/git/spl/ \
    --with-spl-obj=$HOME/src/git/spl/build
  $ make -s

This change also has the advantage of resolving the following
warning which is generated by modern versions of automake.

  Makefile.am:00: warning: source file 'xxx' is in a subdirectory,
  Makefile.am:00: but option 'subdir-objects' is disabled

Signed-off-by: Turbo Fredriksson &lt;turbo@bayour.com&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #1082
</content>
</entry>
<entry>
<title>Retire spl_module_init()/spl_module_fini()</title>
<updated>2015-02-24T19:37:44Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2015-02-18T23:39:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b4f3666a16a61aa2ac7dca0b199e7ce51edbcd60'/>
<id>urn:sha1:b4f3666a16a61aa2ac7dca0b199e7ce51edbcd60</id>
<content type='text'>
In the original implementation of the SPL wrappers were provided
for module initialization and cleanup.  This was done to abstract
away any compatibility code which might be needed for the SPL.

As it turned out the only significant compatibility issue was that
the default pwd during module load differed under Illumos and Linux.
Since this is such as minor thing and the wrappers complicate the
code they are being retired.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #2985
</content>
</entry>
<entry>
<title>Explicitly include SPL compat headers</title>
<updated>2014-11-19T17:30:39Z</updated>
<author>
<name>Ned Bass</name>
<email>bass6@llnl.gov</email>
</author>
<published>2014-11-14T18:21:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=aaed7c408c0bd72c6f9437793a98542972f0a8fd'/>
<id>urn:sha1:aaed7c408c0bd72c6f9437793a98542972f0a8fd</id>
<content type='text'>
Inclusion of SPL compatibility headers was moved out of the public
header sys/types.h to avoid conflicts with external packages.  Include a
few compatiblity headers explicitly to cope with that change.  Also,
sort some linux-specific inclusions alphabetically.

Signed-off-by: Ned Bass &lt;bass6@llnl.gov&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #2898
</content>
</entry>
<entry>
<title>cstyle: Resolve C style issues</title>
<updated>2013-12-19T00:46:35Z</updated>
<author>
<name>Michael Kjorling</name>
<email>michael@kjorling.se</email>
</author>
<published>2013-11-01T19:26:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d1d7e2689db9e03f11c069ebc9f1ba12829e5dac'/>
<id>urn:sha1:d1d7e2689db9e03f11c069ebc9f1ba12829e5dac</id>
<content type='text'>
The vast majority of these changes are in Linux specific code.
They are the result of not having an automated style checker to
validate the code when it was originally written.  Others were
caused when the common code was slightly adjusted for Linux.

This patch contains no functional changes.  It only refreshes
the code to conform to style guide.

Everyone submitting patches for inclusion upstream should now
run 'make checkstyle' and resolve any warning prior to opening
a pull request.  The automated builders have been updated to
fail a build if when 'make checkstyle' detects an issue.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #1821
</content>
</entry>
<entry>
<title>Add module versioning</title>
<updated>2013-12-06T17:34:41Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2013-12-04T18:32:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=99e349db92008ee61dad5a612056cf0fdecb3896'/>
<id>urn:sha1:99e349db92008ee61dad5a612056cf0fdecb3896</id>
<content type='text'>
Use the standard Linux MODULE_VERSION macro to expose the installed
zavl, znvpair, zunicode, zcommon, zfs, and zpios module versions.
This will also automatically add a checksum of the .c files and
headers in "srcversion".  See:

  /sys/module/zavl/version
  /sys/module/zavl/srcversion
  /sys/module/znvpair/version
  /sys/module/znvpair/srcversion
  /sys/module/zunicode/version
  /sys/module/zunicode/srcversion
  /sys/module/zcommon/version
  /sys/module/zcommon/srcversion
  /sys/module/zfs/version
  /sys/module/zfs/srcversion
  /sys/module/zpios/version
  /sys/module/zpios/srcversion

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #1923
</content>
</entry>
<entry>
<title>Add script for builtin module building.</title>
<updated>2012-07-26T20:45:09Z</updated>
<author>
<name>Etienne Dechamps</name>
<email>etienne.dechamps@ovh.net</email>
</author>
<published>2012-07-09T09:23:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2ee4a18b2ac9c155e099db06cec320bd8cee3150'/>
<id>urn:sha1:2ee4a18b2ac9c155e099db06cec320bd8cee3150</id>
<content type='text'>
This commit introduces a "copy-builtin" script designed to prepare a
kernel source tree for building ZFS as a builtin module. The script
makes a full copy of all needed files, thus making the kernel source
tree fully independent of the zfs source package.

To achieve that, some compilation flags (-include, -I) have been moved
to module/Makefile. This Makefile is only used when compiling external
modules; when compiling builtin modules, a Kbuild file generated by the
configure-builtin script is used instead. This makes sure Makefiles
inside the kernel source tree does not contain references to the zfs
source package.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #851
</content>
</entry>
<entry>
<title>Support custom build directories and move includes</title>
<updated>2010-09-08T19:38:56Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2010-09-04T20:26:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6283f55ea1b91e680386388c17d14b89e344fa8d'/>
<id>urn:sha1:6283f55ea1b91e680386388c17d14b89e344fa8d</id>
<content type='text'>
One of the neat tricks an autoconf style project is capable of
is allow configurion/building in a directory other than the
source directory.  The major advantage to this is that you can
build the project various different ways while making changes
in a single source tree.

For example, this project is designed to work on various different
Linux distributions each of which work slightly differently.  This
means that changes need to verified on each of those supported
distributions perferably before the change is committed to the
public git repo.

Using nfs and custom build directories makes this much easier.
I now have a single source tree in nfs mounted on several different
systems each running a supported distribution.  When I make a
change to the source base I suspect may break things I can
concurrently build from the same source on all the systems each
in their own subdirectory.

wget -c http://github.com/downloads/behlendorf/zfs/zfs-x.y.z.tar.gz
tar -xzf zfs-x.y.z.tar.gz
cd zfs-x-y-z

------------------------- run concurrently ----------------------
&lt;ubuntu system&gt;  &lt;fedora system&gt;  &lt;debian system&gt;  &lt;rhel6 system&gt;
mkdir ubuntu     mkdir fedora     mkdir debian     mkdir rhel6
cd ubuntu        cd fedora        cd debian        cd rhel6
../configure     ../configure     ../configure     ../configure
make             make             make             make
make check       make check       make check       make check

This change also moves many of the include headers from individual
incude/sys directories under the modules directory in to a single
top level include directory.  This has the advantage of making
the build rules cleaner and logically it makes a bit more sense.
</content>
</entry>
<entry>
<title>Add linux kernel module support</title>
<updated>2010-08-31T20:41:58Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2010-08-26T18:49:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c28b227942b421ebdc03c9df9a012642fb517223'/>
<id>urn:sha1:c28b227942b421ebdc03c9df9a012642fb517223</id>
<content type='text'>
Setup linux kernel module support, this includes:
- zfs context for kernel/user
- kernel module build system integration
- kernel module macros
- kernel module symbol export
- kernel module options

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
</content>
</entry>
<entry>
<title>Add build system</title>
<updated>2010-08-31T20:41:27Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2010-08-26T18:22:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c9c0d073da561bcbefbdf09c87fc75b227415619'/>
<id>urn:sha1:c9c0d073da561bcbefbdf09c87fc75b227415619</id>
<content type='text'>
Add autoconf style build infrastructure to the ZFS tree.  This
includes autogen.sh, configure.ac, m4 macros, some scripts/*,
and makefiles for all the core ZFS components.
</content>
</entry>
</feed>
