gdb: Move defs.h before any system header in debuginfod-support.c

Message ID 20200229134648.2833-1-jon.turney@dronecode.org.uk
State New, archived
Headers

Commit Message

Jon Turney Feb. 29, 2020, 1:46 p.m. UTC
  * defs.h includes config.h
* config.h may define _GNU_SOURCE
* if _GNU_SOURCE is defined, that must be before including any system
header (see feature_test_macro(7))

This is necessary to ensure that a prototype for mkostemp() is brought
into scope by <stdlib.h> when compiling filestuff.h, on platforms where
_GNU_SOURCE isn't unconditionally defined for C++ (i.e. not Linux).

In file included from ../../gdb/../gdbsupport/scoped_fd.h:24,
                 from ../../gdb/debuginfod-support.c:22:
../../gdb/../gdbsupport/filestuff.h: In function ‘int gdb_mkostemp_cloexec(char*, int)’:
../../gdb/../gdbsupport/filestuff.h:59:10: error: ‘mkostemp’ was not declared in this scope; did you mean ‘mkstemp’?

gdb/ChangeLog:

2020-02-29  Jon Turney  <jon.turney@dronecode.org.uk>

	* debuginfod-support.c: Include defs.h first.
---
 gdb/ChangeLog            | 4 ++++
 gdb/debuginfod-support.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)
  

Comments

Tom Tromey Feb. 29, 2020, 2:16 p.m. UTC | #1
>>>>> "Jon" == Jon Turney <jon.turney@dronecode.org.uk> writes:

Jon> 2020-02-29  Jon Turney  <jon.turney@dronecode.org.uk>

Jon> 	* debuginfod-support.c: Include defs.h first.

Thanks, this is ok.  Please check it in.

Tom
  

Patch

diff --git a/gdb/debuginfod-support.c b/gdb/debuginfod-support.c
index e0f0fac076..f4a227b040 100644
--- a/gdb/debuginfod-support.c
+++ b/gdb/debuginfod-support.c
@@ -16,8 +16,8 @@ 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <errno.h>
 #include "defs.h"
+#include <errno.h>
 #include "cli/cli-style.h"
 #include "gdbsupport/scoped_fd.h"
 #include "debuginfod-support.h"