<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/distcc-git.git/src/snprintf.c, branch python3</title>
<subtitle>github.com: distcc/distcc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/'/>
<entry>
<title>Fix warnings about unused return values.  This includes some code changes</title>
<updated>2011-04-06T14:35:28+00:00</updated>
<author>
<name>fergus.henderson</name>
<email>fergushenderson@users.noreply.github.com</email>
</author>
<published>2011-04-06T14:35:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=2e8b156f51821b9a6b3dbf38fd978d3581fe0afa'/>
<id>2e8b156f51821b9a6b3dbf38fd978d3581fe0afa</id>
<content type='text'>
to do a better job of error checking.

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to do a better job of error checking.

</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some warnings with -Wcast-align that show up only on machines</title>
<updated>2008-07-30T02:28:41+00:00</updated>
<author>
<name>fergus.henderson</name>
<email>fergushenderson@users.noreply.github.com</email>
</author>
<published>2008-07-30T02:28:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=0404dc94da93fb52aa25a66f57c8c3a7838e2f40'/>
<id>0404dc94da93fb52aa25a66f57c8c3a7838e2f40</id>
<content type='text'>
that don't support unaligned accesses.

Fix some const correctness warnings that show up only on machines
that don't have vsnprintf().

Reviewers: Craig Silverstein
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
that don't support unaligned accesses.

Fix some const correctness warnings that show up only on machines
that don't have vsnprintf().

Reviewers: Craig Silverstein
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug that caused "make check" to fail: MissingCompiler_Case</title>
<updated>2008-07-29T22:17:30+00:00</updated>
<author>
<name>fergus.henderson</name>
<email>fergushenderson@users.noreply.github.com</email>
</author>
<published>2008-07-29T22:17:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=a59ffb549e7e423e48b46726de6563c96646e6b2'/>
<id>a59ffb549e7e423e48b46726de6563c96646e6b2</id>
<content type='text'>
was reporting an unexpected exit status: 139 instead of 110.
This was caused by a seg fault in distccd, deep in the bowels of
vsnprintf(), which appears to be due to calling vsnprintf() twice
on the same va_list.  The fix is to use va_copy() in src/trace.c.

Of course it's never quite as easy as that.  va_copy() exists
only in C99, not in C89.  Some implementations have __va_copy()
but not va_copy().  So we need to autoconf it.  There was
already an autoconf test for this, but only for __va_copy.
I've moved the code which defined VA_COPY from snprintf.c to
a new header file va_copy.h, and added a VA_COPY_END macro.

Also, fix another bug that I noticed at the same time:
snprintf.c was using va_copy(), but was not matching each
call to va_copy with a corresponding call to va_end(),
as required by the C99 standard.

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
was reporting an unexpected exit status: 139 instead of 110.
This was caused by a seg fault in distccd, deep in the bowels of
vsnprintf(), which appears to be due to calling vsnprintf() twice
on the same va_list.  The fix is to use va_copy() in src/trace.c.

Of course it's never quite as easy as that.  va_copy() exists
only in C99, not in C89.  Some implementations have __va_copy()
but not va_copy().  So we need to autoconf it.  There was
already an autoconf test for this, but only for __va_copy.
I've moved the code which defined VA_COPY from snprintf.c to
a new header file va_copy.h, and added a VA_COPY_END macro.

Also, fix another bug that I noticed at the same time:
snprintf.c was using va_copy(), but was not matching each
call to va_copy with a corresponding call to va_end(),
as required by the C99 standard.

</pre>
</div>
</content>
</entry>
<entry>
<title>Change C++-style // comments to /**/.</title>
<updated>2008-05-20T18:16:38+00:00</updated>
<author>
<name>Craig Silverstein</name>
<email>csilvers@khanacademy.org</email>
</author>
<published>2008-05-20T18:16:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=458b09d3c0df853a872a2fb214dfbe2aaf7117f8'/>
<id>458b09d3c0df853a872a2fb214dfbe2aaf7117f8</id>
<content type='text'>
Also, fix the emacs var-setting line: it was missing a semicolon
before, which means the entire line was being ignored.

No contentful change.

Reviewed by fergus@google.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also, fix the emacs var-setting line: it was missing a semicolon
before, which means the entire line was being ignored.

No contentful change.

Reviewed by fergus@google.com
</pre>
</div>
</content>
</entry>
<entry>
<title>Turned all tabs into 4 spaces.  Got rid of whitespace at the end of</title>
<updated>2008-05-20T06:13:28+00:00</updated>
<author>
<name>Craig Silverstein</name>
<email>csilvers@khanacademy.org</email>
</author>
<published>2008-05-20T06:13:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=41b794c77d881e29b260d5fccd14293af499b768'/>
<id>41b794c77d881e29b260d5fccd14293af499b768</id>
<content type='text'>
lines.  Fixed up resulting mis-indented code I noticed (mostly in
files that used 8 space indents, or used 4-space and 8-space indents
in the same file (!)).  Added the emacs tab-var setting for all files,
not just some of them.

I also added in copyright notices for files I noticed that didn't have
them.  We'll want to do another pass-through to fix these up properly,
though.

I used the following perl snippet to check for mis-indented code after
converting tabs to whitespace:

  $ for i in *.{c,h}; do echo $i; perl -nle 'if ($indent &gt; 0) {$sp=" " x $indent; /^$sp[^ ]/ &amp;&amp; print "$.: $_"; $indent=0;}; if (/^( *).*{/ ) {$indent=length($1);} else {$indent=0;}' $i; done | less

It had false positives, but hopefully didn't miss anything.

Reviewed by klarlund@google.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
lines.  Fixed up resulting mis-indented code I noticed (mostly in
files that used 8 space indents, or used 4-space and 8-space indents
in the same file (!)).  Added the emacs tab-var setting for all files,
not just some of them.

I also added in copyright notices for files I noticed that didn't have
them.  We'll want to do another pass-through to fix these up properly,
though.

I used the following perl snippet to check for mis-indented code after
converting tabs to whitespace:

  $ for i in *.{c,h}; do echo $i; perl -nle 'if ($indent &gt; 0) {$sp=" " x $indent; /^$sp[^ ]/ &amp;&amp; print "$.: $_"; $indent=0;}; if (/^( *).*{/ ) {$indent=length($1);} else {$indent=0;}' $i; done | less

It had false positives, but hopefully didn't miss anything.

Reviewed by klarlund@google.com
</pre>
</div>
</content>
</entry>
<entry>
<title>Make handling of config.h sound.</title>
<updated>2008-05-09T18:15:18+00:00</updated>
<author>
<name>klarlund</name>
<email>klarlund@gmail.com</email>
</author>
<published>2008-05-09T18:15:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=a31b5d6a22150bc54c93166910ba9f351081c659'/>
<id>a31b5d6a22150bc54c93166910ba9f351081c659</id>
<content type='text'>
(1) Correct order of -Is in Makefile.

(2) remove unnessary PATH modification in configure.ac (this is fergus's
suggestion -- hopefully this will do, this replaces a circumvention mechanism I
had originally concocted.

(3) Fix place of the include of popt in CPPFLAGS.

(4) Convert quoted includes of config.h to angle bracket includes so that the
build version, not the source version, of this file is picked up.

The order of -Is in the build system is wrong: it contradicts the
VPATH mechanism.  

This means that builds in a build directory different from that
of the source (distribution) directory will find wrong files even
after the hapless developer has issued only a 'configure' command
in the source directory (but not actually 'made' any thing
there).  For in that case, the src/config.h will be generated in
the source directory and this will be the file picked in the
build directory even if that directory has it's own src/config.h.
This can lead to wrong builds and it can be hard to diagnose the
problem.

Currently, this what CPPFLAGS end up being (as found in the
generated Makefile):

  CPPFLAGS =  -DHAVE_CONFIG_H -D_GNU_SOURCE \
              -I../distcc/popt -I../distcc/src \
              ${DIR_DEFS} \
              -Isrc -Ilzo \
              -I"$(srcdir)/src" -I"$(srcdir)/lzo" \

Here my source dir was ../distcc.  

The presence of '-I../distcc/popt' in front of -Isrc is the exact
opposite of the semantics of VPATH mechanism, which looks for
files in the build directory, then in the source directory.  

Also, note the remarks in:

  http://www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Headers

(they do not quite correctly discuss the search path, btw).

TESTING: I verified that with a corrupted config.h file in the source directory,
building now succeeds.

Also: make distcheck (it fails the same place as before: this is corrected in
another change of mine --- I'll verify that with that change in place, this
change makes 'make distcheck' succeed.)

REVIEWERS: fergus@google.com, csilvers@google.com

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(1) Correct order of -Is in Makefile.

(2) remove unnessary PATH modification in configure.ac (this is fergus's
suggestion -- hopefully this will do, this replaces a circumvention mechanism I
had originally concocted.

(3) Fix place of the include of popt in CPPFLAGS.

(4) Convert quoted includes of config.h to angle bracket includes so that the
build version, not the source version, of this file is picked up.

The order of -Is in the build system is wrong: it contradicts the
VPATH mechanism.  

This means that builds in a build directory different from that
of the source (distribution) directory will find wrong files even
after the hapless developer has issued only a 'configure' command
in the source directory (but not actually 'made' any thing
there).  For in that case, the src/config.h will be generated in
the source directory and this will be the file picked in the
build directory even if that directory has it's own src/config.h.
This can lead to wrong builds and it can be hard to diagnose the
problem.

Currently, this what CPPFLAGS end up being (as found in the
generated Makefile):

  CPPFLAGS =  -DHAVE_CONFIG_H -D_GNU_SOURCE \
              -I../distcc/popt -I../distcc/src \
              ${DIR_DEFS} \
              -Isrc -Ilzo \
              -I"$(srcdir)/src" -I"$(srcdir)/lzo" \

Here my source dir was ../distcc.  

The presence of '-I../distcc/popt' in front of -Isrc is the exact
opposite of the semantics of VPATH mechanism, which looks for
files in the build directory, then in the source directory.  

Also, note the remarks in:

  http://www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Headers

(they do not quite correctly discuss the search path, btw).

TESTING: I verified that with a corrupted config.h file in the source directory,
building now succeeds.

Also: make distcheck (it fails the same place as before: this is corrected in
another change of mine --- I'll verify that with that change in place, this
change makes 'make distcheck' succeed.)

REVIEWERS: fergus@google.com, csilvers@google.com

</pre>
</div>
</content>
</entry>
<entry>
<title>These changes are enough to get code to compile, and at least some of</title>
<updated>2008-04-28T19:23:31+00:00</updated>
<author>
<name>Craig Silverstein</name>
<email>csilvers@khanacademy.org</email>
</author>
<published>2008-04-28T19:23:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=f1373cdf3c33752ec326c9b79378057367836c4c'/>
<id>f1373cdf3c33752ec326c9b79378057367836c4c</id>
<content type='text'>
the unittests to pass, on FreeBSD 6.0, Solaris 10 x86, and OS X
Leopard.  You have to use gmake instead of standard bsd make, though,
because neither bsd nor solari make understand 'include */*.d' and
'CFLAGS += $(POPT_FLAGS).'  These may be fixable later.

Most changes fall into four categories:
1) #include differences
2) New errors due to some #ifdef paths being taken differently
3) Undefined functions (see, eg, the new HAVE_STRSEP)
4) Type differences (eg tv_usec is an int on os x, not a long int)

As one concrete example, snprintf.c is an empty file on linux, where
all the functionality is part of glibc.  But on Solaris, some of its
functionality is useful.  This turned up a bug where if you have
vsnprintf on your system but not vasnprintf, then dopr() was not being
used but was being defined, leading to an "unused static function"
warning in gcc.

As another, solaris would complain about "index" being used as a
variable, since it's also a function name.  The var was renamed idx.

Tested by compiling on FreeBSD, Solaris 10, and OS X leopard (x86).  I
also compiled and ran unittests under Linux Ubuntu, to make sure
this change didn't break anything there.

Reviewed by fergus@google.com
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the unittests to pass, on FreeBSD 6.0, Solaris 10 x86, and OS X
Leopard.  You have to use gmake instead of standard bsd make, though,
because neither bsd nor solari make understand 'include */*.d' and
'CFLAGS += $(POPT_FLAGS).'  These may be fixable later.

Most changes fall into four categories:
1) #include differences
2) New errors due to some #ifdef paths being taken differently
3) Undefined functions (see, eg, the new HAVE_STRSEP)
4) Type differences (eg tv_usec is an int on os x, not a long int)

As one concrete example, snprintf.c is an empty file on linux, where
all the functionality is part of glibc.  But on Solaris, some of its
functionality is useful.  This turned up a bug where if you have
vsnprintf on your system but not vasnprintf, then dopr() was not being
used but was being defined, leading to an "unused static function"
warning in gcc.

As another, solaris would complain about "index" being used as a
variable, since it's also a function name.  The var was renamed idx.

Tested by compiling on FreeBSD, Solaris 10, and OS X leopard (x86).  I
also compiled and ran unittests under Linux Ubuntu, to make sure
this change didn't break anything there.

Reviewed by fergus@google.com
</pre>
</div>
</content>
</entry>
<entry>
<title>The first step of moving everything in the distcc directory to the top</title>
<updated>2008-04-11T22:36:40+00:00</updated>
<author>
<name>Craig Silverstein</name>
<email>csilvers@khanacademy.org</email>
</author>
<published>2008-04-11T22:36:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/distcc-git.git/commit/?id=596cf4e2f019a766965ad0566495c56b7d295fe4'/>
<id>596cf4e2f019a766965ad0566495c56b7d295fe4</id>
<content type='text'>
level.  I'm doing this in two stages, because I don't understand svn
enough to be confident to do it in one.  This first stage just copies
all the files from distcc/FOO to FOO.  Now there are two copies of
each file under distcc; the Makefile/etc uses the one in distcc and
ignores the one at the top level.

The next commit will delete everything under distcc, and rewrite the
Makefile/etc to use the top-level versions instead.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
level.  I'm doing this in two stages, because I don't understand svn
enough to be confident to do it in one.  This first stage just copies
all the files from distcc/FOO to FOO.  Now there are two copies of
each file under distcc; the Makefile/etc uses the one in distcc and
ignores the one at the top level.

The next commit will delete everything under distcc, and rewrite the
Makefile/etc to use the top-level versions instead.


</pre>
</div>
</content>
</entry>
</feed>
