Patchwork [VMS/committed] : Provide C99 stdint.h

login
register
mail settings
Submitter Tristan Gingold
Date March 16, 2012, 9:29 a.m.
Message ID <1453D6F6-46FA-40F5-A025-F1B4CF51B235@adacore.com>
Download mbox | patch
Permalink /patch/147176/
State New
Headers show

Comments

Tristan Gingold - March 16, 2012, 9:29 a.m.
Hi,

this patch makes gcc provide the C99 compliant stdint.h header.
(required by libquadmath).

Committed on trunk.

Tristan.

2012-03-16  Tristan Gingold  <gingold@adacore.com>

	* config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
	* config/vms/vms-stdint.h: New file.

Patch

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 185454)
+++ gcc/config.gcc	(working copy)
@@ -740,6 +740,8 @@ 
   xm_file="vms/xm-vms.h"
   c_target_objs="vms-c.o"
   cxx_target_objs="vms-c.o"
+  use_gcc_stdint=provide
+  tm_file="${tm_file} vms/vms-stdint.h"
   if test x$gnu_ld != xyes; then
     # Build wrappers for native case.
     extra_programs="ld\$(exeext) ar\$(exeext)"
Index: gcc/config/vms/vms-stdint.h
===================================================================
--- gcc/config/vms/vms-stdint.h	(revision 0)
+++ gcc/config/vms/vms-stdint.h	(revision 0)
@@ -0,0 +1,50 @@ 
+/* Definitions for <stdint.h> types on VMS systems.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#define SIG_ATOMIC_TYPE "int"
+
+#define INT8_TYPE "signed char"
+#define INT16_TYPE "short int"
+#define INT32_TYPE "int"
+#define INT64_TYPE "long long int"
+#define UINT8_TYPE "unsigned char"
+#define UINT16_TYPE "short unsigned int"
+#define UINT32_TYPE "unsigned int"
+#define UINT64_TYPE "long long unsigned int"
+
+#define INT_LEAST8_TYPE "signed char"
+#define INT_LEAST16_TYPE "short int"
+#define INT_LEAST32_TYPE "int"
+#define INT_LEAST64_TYPE "long long int"
+#define UINT_LEAST8_TYPE "unsigned char"
+#define UINT_LEAST16_TYPE "short unsigned int"
+#define UINT_LEAST32_TYPE "unsigned int"
+#define UINT_LEAST64_TYPE "long long unsigned int"
+
+#define INT_FAST8_TYPE "signed char"
+#define INT_FAST16_TYPE "short int"
+#define INT_FAST32_TYPE "int"
+#define INT_FAST64_TYPE "long long int"
+#define UINT_FAST8_TYPE "unsigned char"
+#define UINT_FAST16_TYPE "short unsigned int"
+#define UINT_FAST32_TYPE "unsigned int"
+#define UINT_FAST64_TYPE "long long unsigned int"
+
+#define INTPTR_TYPE "long long int"
+#define UINTPTR_TYPE "long long unsigned int"