<html lang="en">
<head>
<title>Reporting Bugs - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Installation.html#Installation" title="Installation">
<link rel="prev" href="Linux.html#Linux" title="Linux">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Reporting-Bugs"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Linux.html#Linux">Linux</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Installation.html#Installation">Installation</a>
<hr>
</div>

<h3 class="appendixsec">C.5 Reporting Bugs</h3>

<p><a name="index-reporting-bugs-3820"></a><a name="index-bugs_002c-reporting-3821"></a>
There are probably bugs in the GNU C library.  There are certainly
errors and omissions in this manual.  If you report them, they will get
fixed.  If you don't, no one will ever know about them and they will
remain unfixed for all eternity, if not longer.

   <p>It is a good idea to verify that the problem has not already been
reported.  Bugs are documented in two places: The file <samp><span class="file">BUGS</span></samp>
describes a number of well known bugs and the upstream GNU C library
bug tracking system has a
WWW interface at
<a href="http://sources.redhat.com/bugzilla/">http://sources.redhat.com/bugzilla/</a>.  The WWW
interface gives you access to open and closed reports.  A closed report
normally includes a patch or a hint on solving the problem.

   <p>To report a bug, first you must find it.  With any luck, this will be the
hard part.  Once you've found a bug, make sure it's really a bug.  A
good way to do this is to see if the GNU C library behaves the same way
some other C library does.  If so, probably you are wrong and the
libraries are right (but not necessarily).  If not, one of the libraries
is probably wrong.  It might not be the GNU library.  Many historical
Unix C libraries permit things that we don't, such as closing a file
twice.

   <p>If you think you have found some way in which the GNU C library does not
conform to the ISO and POSIX standards (see <a href="Standards-and-Portability.html#Standards-and-Portability">Standards and Portability</a>), that is definitely a bug.  Report it!

   <p>Once you're sure you've found a bug, try to narrow it down to the
smallest test case that reproduces the problem.  In the case of a C
library, you really only need to narrow it down to one library
function call, if possible.  This should not be too difficult.

   <p>The final step when you have a simple test case is to report the bug. 
Do this at {No value for `REPORT_BUGS_TO'}.

   <p>If you are not sure how a function should behave, and this manual
doesn't tell you, that's a bug in the manual.  Report that too!  If the
function's behavior disagrees with the manual, then either the library
or the manual has a bug, so report the disagreement.  If you find any
errors or omissions in this manual, please report them to the
bug database.  If you refer to specific
sections of the manual, please include the section names for easier
identification.

   </body></html>

