<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libutil/Makefile, branch release/8.2.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Copy releng/8.2 to release/8.2.0 for 8.2-RELEASE.</title>
<updated>2011-02-16T16:18:46+00:00</updated>
<author>
<name>Ken Smith</name>
<email>kensmith@FreeBSD.org</email>
</author>
<published>2011-02-16T16:18:46+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=dec99dafe5763ba1db6950342aa80a634169c083'/>
<id>dec99dafe5763ba1db6950342aa80a634169c083</id>
<content type='text'>
Approved by:	re (implicit)

This commit was manufactured to restore the state of the 8.2-RELEASE image.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Approved by:	re (implicit)

This commit was manufactured to restore the state of the 8.2-RELEASE image.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump the version of all non-symbol-versioned shared libraries in</title>
<updated>2009-07-19T17:25:24+00:00</updated>
<author>
<name>Ken Smith</name>
<email>kensmith@FreeBSD.org</email>
</author>
<published>2009-07-19T17:25:24+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3ca3047aee082043d90aff2611a349c86c98e97c'/>
<id>3ca3047aee082043d90aff2611a349c86c98e97c</id>
<content type='text'>
preparation for 8.0-RELEASE.  Add the previous version of those
libraries to ObsoleteFiles.inc and bump __FreeBSD_Version.

Reviewed by:    kib
Approved by:    re (rwatson)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
preparation for 8.0-RELEASE.  Add the previous version of those
libraries to ObsoleteFiles.inc and bump __FreeBSD_Version.

Reviewed by:    kib
Approved by:    re (rwatson)
</pre>
</div>
</content>
</entry>
<entry>
<title>Add filler man pages for the kinfo functions I added recently.</title>
<updated>2008-12-07T03:33:36+00:00</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2008-12-07T03:33:36+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ce4a8bcbee79168017b9b0162c4ae3c779a64561'/>
<id>ce4a8bcbee79168017b9b0162c4ae3c779a64561</id>
<content type='text'>
While here, hook up the hexdump(3) man page which wasn't being installed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While here, hook up the hexdump(3) man page which wasn't being installed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge user/peter/kinfo branch as of r185547 into head.</title>
<updated>2008-12-02T06:50:26+00:00</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>2008-12-02T06:50:26+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=43151ee6cfcbe0b6e38e49de940ae9e58fe934af'/>
<id>43151ee6cfcbe0b6e38e49de940ae9e58fe934af</id>
<content type='text'>
This changes struct kinfo_filedesc and kinfo_vmentry such that they are
same on both 32 and 64 bit platforms like i386/amd64 and won't require
sysctl wrapping.

Two new OIDs are assigned.  The old ones are available under
COMPAT_FREEBSD7 - but it isn't that simple.  The superceded interface
was never actually released on 7.x.

The other main change is to pack the data passed to userland via the
sysctl.  kf_structsize and kve_structsize are reduced for the copyout.
If you have a process with 100,000+ sockets open, the unpacked records
require a 132MB+ copyout.  With packing, it is "only" ~35MB.  (Still
seriously unpleasant, but not quite as devastating).  A similar problem
exists for the vmentry structure - have lots and lots of shared libraries
and small mmaps and its copyout gets expensive too.

My immediate problem is valgrind.  It traditionally achieves this
functionality by parsing procfs output, in a packed format.  Secondly, when
tracing 32 bit binaries on amd64 under valgrind, it uses a cross compiled
32 bit binary which ran directly into the differing data structures in 32
vs 64 bit mode.  (valgrind uses this to track file descriptor operations
and this therefore affected every single 32 bit binary)

I've added two utility functions to libutil to unpack the structures into
a fixed record length and to make it a little more convenient to use.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This changes struct kinfo_filedesc and kinfo_vmentry such that they are
same on both 32 and 64 bit platforms like i386/amd64 and won't require
sysctl wrapping.

Two new OIDs are assigned.  The old ones are available under
COMPAT_FREEBSD7 - but it isn't that simple.  The superceded interface
was never actually released on 7.x.

The other main change is to pack the data passed to userland via the
sysctl.  kf_structsize and kve_structsize are reduced for the copyout.
If you have a process with 100,000+ sockets open, the unpacked records
require a 132MB+ copyout.  With packing, it is "only" ~35MB.  (Still
seriously unpleasant, but not quite as devastating).  A similar problem
exists for the vmentry structure - have lots and lots of shared libraries
and small mmaps and its copyout gets expensive too.

My immediate problem is valgrind.  It traditionally achieves this
functionality by parsing procfs output, in a packed format.  Secondly, when
tracing 32 bit binaries on amd64 under valgrind, it uses a cross compiled
32 bit binary which ran directly into the differing data structures in 32
vs 64 bit mode.  (valgrind uses this to track file descriptor operations
and this therefore affected every single 32 bit binary)

I've added two utility functions to libutil to unpack the structures into
a fixed record length and to make it a little more convenient to use.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed style issues with variable ordering and naming, spacing and</title>
<updated>2008-11-23T23:26:12+00:00</updated>
<author>
<name>Sean Farley</name>
<email>scf@FreeBSD.org</email>
</author>
<published>2008-11-23T23:26:12+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=805da51abdacd1804445c89c086a7f826f825073'/>
<id>805da51abdacd1804445c89c086a7f826f825073</id>
<content type='text'>
parentheses.

Fixed alignment issue in gr_dup() in its assignment of gr_mem using a
struct to force alignment without performing alignment mathematics.  This
was noticed recently with libutil was built with WARNS=6 on platform such
as sparc64.

Added checks to gr_dup(), gr_equal() and gr_make() to prevent segfaults
when examining struct group's with the struct members pointing to NULL's.

With fix of alignment issue, restore WARNS?=6.

Reviewed by:	des
MFC after:	1 week
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
parentheses.

Fixed alignment issue in gr_dup() in its assignment of gr_mem using a
struct to force alignment without performing alignment mathematics.  This
was noticed recently with libutil was built with WARNS=6 on platform such
as sparc64.

Added checks to gr_dup(), gr_equal() and gr_make() to prevent segfaults
when examining struct group's with the struct members pointing to NULL's.

With fix of alignment issue, restore WARNS?=6.

Reviewed by:	des
MFC after:	1 week
</pre>
</div>
</content>
</entry>
<entry>
<title>Comment out WARNS.  There are too many alignment issues in libutil.</title>
<updated>2008-11-05T11:06:10+00:00</updated>
<author>
<name>Dag-Erling Smørgrav</name>
<email>des@FreeBSD.org</email>
</author>
<published>2008-11-05T11:06:10+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c5eca3d84d49cf9eb3ab9073fc31027c765ba423'/>
<id>c5eca3d84d49cf9eb3ab9073fc31027c765ba423</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Disconnect gr_util.c from the build.  It isn't documented or used anywhere</title>
<updated>2008-11-05T10:45:39+00:00</updated>
<author>
<name>Dag-Erling Smørgrav</name>
<email>des@FreeBSD.org</email>
</author>
<published>2008-11-05T10:45:39+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b67921fc4b15947b6cdaff99764a9c5028994b4c'/>
<id>b67921fc4b15947b6cdaff99764a9c5028994b4c</id>
<content type='text'>
in the tree, and due to unsafe pointer arithmetic, it will most likely crash
on architectures with strict alignment requirements.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in the tree, and due to unsafe pointer arithmetic, it will most likely crash
on architectures with strict alignment requirements.
</pre>
</div>
</content>
</entry>
<entry>
<title>libutil now builds at WARNS level 6.</title>
<updated>2008-11-04T13:51:15+00:00</updated>
<author>
<name>Dag-Erling Smørgrav</name>
<email>des@FreeBSD.org</email>
</author>
<published>2008-11-04T13:51:15+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5e1a74e82f4582e2a15820b91a7e2a390d6b2d96'/>
<id>5e1a74e82f4582e2a15820b91a7e2a390d6b2d96</id>
<content type='text'>
MFC after:	3 weeks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MFC after:	3 weeks
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge hexdump(9) to userland as hexdump(3) in libutil.  I'm tired of doing</title>
<updated>2008-07-01T22:30:57+00:00</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2008-07-01T22:30:57+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e1355b07eede4d5a1abe1462a81fc253e51b83e3'/>
<id>e1355b07eede4d5a1abe1462a81fc253e51b83e3</id>
<content type='text'>
this by hand in userland utilities.

MFC after:	1 month
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this by hand in userland utilities.

MFC after:	1 month
</pre>
</div>
</content>
</entry>
<entry>
<title>Add four utility functions related to struct grp processing modeled in-part</title>
<updated>2008-04-23T00:49:13+00:00</updated>
<author>
<name>Sean Farley</name>
<email>scf@FreeBSD.org</email>
</author>
<published>2008-04-23T00:49:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0b5e889911fe6eda2ae1f28db186b9169d7ad766'/>
<id>0b5e889911fe6eda2ae1f28db186b9169d7ad766</id>
<content type='text'>
after similar calls related to struct pwd in libutil/pw_util.c:
  - gr_equal()
    Perform a deep comparison of two struct grp's.  It does a thorough, yet
    unoptimized comparison of all the members regardless of order.

  - gr_make()
    Create a string (see group(5)) from a struct grp.

  - gr_dup()
    Duplicate a struct grp.  Returns a value that is a single contiguous
    block of memory.

  - gr_scan()
    Create a struct grp from a string (as produced by gr_make()).

MFC after:	3 weeks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
after similar calls related to struct pwd in libutil/pw_util.c:
  - gr_equal()
    Perform a deep comparison of two struct grp's.  It does a thorough, yet
    unoptimized comparison of all the members regardless of order.

  - gr_make()
    Create a string (see group(5)) from a struct grp.

  - gr_dup()
    Duplicate a struct grp.  Returns a value that is a single contiguous
    block of memory.

  - gr_scan()
    Create a struct grp from a string (as produced by gr_make()).

MFC after:	3 weeks
</pre>
</div>
</content>
</entry>
</feed>
