@c Copyright (C) 1988-2022 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.

@node Service
@chapter How To Get Help with GCC

If you need help installing, using or changing GCC, there are two
ways to find it:

@itemize @bullet
@item
Send a message to a suitable network mailing list.  First try
@email{gcc-help@@gcc.gnu.org} (for help installing or using GCC), and if
that brings no response, try @email{gcc@@gcc.gnu.org}.  For help
changing GCC, ask @email{gcc@@gcc.gnu.org}.  If you think you have found
a bug in GCC, please report it following the instructions at
@pxref{Bug Reporting}.

@item
Look in the service directory for someone who might help you for a fee.
The service directory is found at
@uref{https://www.fsf.org/resources/service}.
@end itemize

For further information, see
@uref{https://gcc.gnu.org/faq.html#support}.
