@@ -7,32 +7,16 @@ if [ -e gcc-builtins.h ] ; then
7
7
exit 1
8
8
fi
9
9
10
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/builtin-types.def
11
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/builtin-types.def > /dev/null
10
+ builtin_defs=" \
11
+ builtin-types.def builtins.def sync-builtins.def \
12
+ omp-builtins.def gtm-builtins.def cilk-builtins.def cilkplus.def \
13
+ sanitizer.def chkp-builtins.def hsa-builtins.def"
12
14
13
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/builtins.def
14
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/builtins.def > /dev/null
15
-
16
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/sync-builtins.def
17
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/sync-builtins.def > /dev/null
18
-
19
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/omp-builtins.def
20
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/omp-builtins.def > /dev/null
21
-
22
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/gtm-builtins.def
23
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/gtm-builtins.def > /dev/null
24
-
25
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/cilk-builtins.def
26
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/cilk-builtins.def > /dev/null
27
-
28
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/cilkplus.def
29
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/cilkplus.def > /dev/null
30
-
31
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/sanitizer.def
32
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/sanitizer.def > /dev/null
33
-
34
- echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/chkp-builtins.def
35
- svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/chkp-builtins.def > /dev/null
15
+ for f in $builtin_defs ; do
16
+ [ ! -s $f ] || continue
17
+ echo Downloading http://gcc.gnu.org/svn/gcc/trunk/gcc/$f
18
+ svn export http://gcc.gnu.org/svn/gcc/trunk/gcc/$f > /dev/null
19
+ done
36
20
37
21
cat > gcc-builtins.h << EOF
38
22
#include <inttypes.h>
@@ -78,6 +62,7 @@ cat > builtins.h <<EOF
78
62
#define uint32_type_node uint32_t
79
63
#define uint64_type_node uint64_t
80
64
#define pid_type_node pid_t
65
+ #define const_tm_ptr_type_node const struct tm*
81
66
82
67
// some newer versions of GCC apparently support __floatXYZ
83
68
#define dfloat32_type_node __float32
@@ -87,6 +72,7 @@ cat > builtins.h <<EOF
87
72
#define build_qualified_type(t, q) q t
88
73
#define build_pointer_type(t) t*
89
74
#define TYPE_QUAL_VOLATILE volatile
75
+ #define TYPE_QUAL_CONST const
90
76
91
77
#define DEF_PRIMITIVE_TYPE(ENUM, TYPE) \
92
78
NEXTDEF ENUM TYPE
@@ -106,11 +92,17 @@ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5)
106
92
NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6)
107
93
#define DEF_FUNCTION_TYPE_7(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
108
94
NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7)
109
- #define DEF_FUNCTION_TYPE_8(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8)
95
+ #define DEF_FUNCTION_TYPE_8(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8) \
110
96
NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8)
97
+ #define DEF_FUNCTION_TYPE_9(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9) \
98
+ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9)
99
+ #define DEF_FUNCTION_TYPE_10(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9, ARG10) \
100
+ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9, ARG10)
101
+ #define DEF_FUNCTION_TYPE_11(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9, ARG10, ARG11) \
102
+ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9, ARG10, ARG11)
111
103
112
104
#define DEF_FUNCTION_TYPE_VAR_0(ENUM, RETURN) \
113
- NEXTDEF ENUM(name) /* RETURN name(...) -- this is a macro */
105
+ NEXTDEF ENUM(name) RETURN name()
114
106
#define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \
115
107
NEXTDEF ENUM(name) RETURN name(ARG1, ...)
116
108
#define DEF_FUNCTION_TYPE_VAR_2(ENUM, RETURN, ARG1, ARG2) \
@@ -121,6 +113,10 @@ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ...)
121
113
NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ...)
122
114
#define DEF_FUNCTION_TYPE_VAR_5(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) \
123
115
NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ...)
116
+ #define DEF_FUNCTION_TYPE_VAR_6(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
117
+ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ...)
118
+ #define DEF_FUNCTION_TYPE_VAR_7(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
119
+ NEXTDEF ENUM(name) RETURN name(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ...)
124
120
125
121
#define DEF_POINTER_TYPE(ENUM, TYPE) \
126
122
NEXTDEF ENUM TYPE*
@@ -137,15 +133,25 @@ gcc -E builtins.h | sed 's/^NEXTDEF/#define/' | cat - builtins.def | \
137
133
sed ' s/MANGLE("__builtin_" "\(.*\)")/__builtin_\1/' | \
138
134
sed ' /^;$/d' >> gcc-builtins.h
139
135
140
- rm builtin-types.def builtins.def sync-builtins.def omp-builtins.def gtm-builtins.def cilk-builtins.def cilkplus.def sanitizer.def
141
- rm builtins.h
136
+ rm $builtin_defs builtins.h
142
137
143
138
# for some we don't know how to handle them - removing symbols should be safe
144
- sed -i ' /MANGLE/d' gcc-builtins.h
145
- sed -i ' /builtin_type_for_size/d' gcc-builtins.h
146
- sed -i ' /BT_FN/d' gcc-builtins.h
147
- sed -i ' /lang_hooks.types.type_for_mode/d' gcc-builtins.h
148
- sed -i ' /__float/d' gcc-builtins.h
139
+ remove_line () {
140
+ local pattern=" $1 "
141
+ if sed --version > /dev/null 2>&1 ; then
142
+ # GNU sed
143
+ sed -i " /$pattern /d" gcc-builtins.h
144
+ else
145
+ sed -i ' ' " /$pattern /d" gcc-builtins.h
146
+ fi
147
+ }
148
+
149
+ remove_line MANGLE
150
+ remove_line builtin_type_for_size
151
+ remove_line BT_FN
152
+ remove_line lang_hooks.types.type_for_mode
153
+ remove_line __float
154
+ remove_line pointer_bounds_type_node
149
155
150
156
cat gcc-builtins.h | sed ' s/__builtin/XX__builtin/' | \
151
157
gcc -c -fno-builtin -x c - -o gcc-builtins.o
0 commit comments