Mon Nov 30 05:50:07 2009 UTC ()
Start implementing the new style libgcc "mknative" converter which generates
BSD makefiles to build libgcc.  The goal is to build all functions rather
than managing the set of functions in gnu/lib/libgcc/Makefile.in by hand.

Because of the complexity of the build procedure, I leave not only generated
makefiles but also intermediate, analyzed data so that people can verify that
the conversion is done correctly.


(uebayasi)
diff -r1.25 -r1.26 src/tools/gcc/mknative-gcc

cvs diff -r1.25 -r1.26 src/tools/gcc/mknative-gcc (switch to unified diff)

--- src/tools/gcc/mknative-gcc 2008/10/11 05:03:44 1.25
+++ src/tools/gcc/mknative-gcc 2009/11/30 05:50:07 1.26
@@ -1,340 +1,348 @@ @@ -1,340 +1,348 @@
1#!/bin/sh 1#!/bin/sh
2# $NetBSD: mknative-gcc,v 1.25 2008/10/11 05:03:44 mrg Exp $ 2# $NetBSD: mknative-gcc,v 1.26 2009/11/30 05:50:07 uebayasi Exp $
3# 3#
4# Shell script for generating all the constants needed for a native 4# Shell script for generating all the constants needed for a native
5# platform build of src/gnu/dist/gcc. 5# platform build of src/gnu/dist/gcc.
6# 6#
7 7
8# initialise 8# initialise
9 9
10_TMPDIR=$2 10_TMPDIR=$2
11_TOP=$3 11_TOP=$3
12_PLATFORM=$4 12_PLATFORM=$4
13_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 13_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'`
14_GNU_DIST=`cd ${_VPATH}; pwd` 14_GNU_DIST=`cd ${_VPATH}; pwd`
15 15
16. $_TOP/tools/gcc/mknative.common 16. $_TOP/tools/gcc/mknative.common
17 17
18##### gnu/lib/crtstuff ##### 18##### gnu/lib/crtstuff #####
19 19
20get_crtstuff () { 20get_crtstuff () {
21 _subdir="$1" 21 _subdir="$1"
22 mkdir -p $_TOP/gnu/lib/$_subdir/arch 22 mkdir -p $_TOP/gnu/lib/$_subdir/arch
23 23
24 getvars gcc/Makefile \ 24 getvars gcc/Makefile \
25 INCLUDES CRTSTUFF_CFLAGS CRTSTUFF_T_CFLAGS \ 25 INCLUDES CRTSTUFF_CFLAGS CRTSTUFF_T_CFLAGS \
26 tm_defines xm_file xm_defines \ 26 tm_defines xm_file xm_defines \
27 | write_mk gnu/lib/$_subdir/arch/$MACHINE_ARCH.mk 27 | write_mk gnu/lib/$_subdir/arch/$MACHINE_ARCH.mk
28} 28}
29 29
30##### gnu/lib/libg2c ##### 30##### gnu/lib/libg2c #####
31 31
32get_libg2c () { 32get_libg2c () {
33 mkdir -p $_TOP/gnu/lib/libg2c3/arch/$MACHINE_ARCH 33 mkdir -p $_TOP/gnu/lib/libg2c3/arch/$MACHINE_ARCH
34 34
35 write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/config.h <$_TMPDIR/$_PLATFORM/libf2c/libU77/config.h 35 write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/config.h <$_TMPDIR/$_PLATFORM/libf2c/libU77/config.h
36 write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/g2c.h <$_TMPDIR/$_PLATFORM/libf2c/g2c.h 36 write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/g2c.h <$_TMPDIR/$_PLATFORM/libf2c/g2c.h
37 37
38 { 38 {
39 getvars $_PLATFORM/libf2c/Makefile \ 39 getvars $_PLATFORM/libf2c/Makefile \
40 F2CEXT 40 F2CEXT
41 getvars $_PLATFORM/libf2c/libF77/Makefile \ 41 getvars $_PLATFORM/libf2c/libF77/Makefile \
42 ALL_CFLAGS OBJS 42 ALL_CFLAGS OBJS
43 getvars $_PLATFORM/libf2c/libI77/Makefile \ 43 getvars $_PLATFORM/libf2c/libI77/Makefile \
44 ALL_CFLAGS OBJS | sed 's,=,+=,' 44 ALL_CFLAGS OBJS | sed 's,=,+=,'
45 getvars $_PLATFORM/libf2c/libU77/Makefile \ 45 getvars $_PLATFORM/libf2c/libU77/Makefile \
46 ALL_CFLAGS OBJS | sed 's,=,+=,' 46 ALL_CFLAGS OBJS | sed 's,=,+=,'
47 } | write_mk gnu/lib/libg2c3/arch/$MACHINE_ARCH/defs.mk 47 } | write_mk gnu/lib/libg2c3/arch/$MACHINE_ARCH/defs.mk
48} 48}
49 49
50##### gnu/lib/libgcc ##### 50##### gnu/lib/libgcc #####
51 51
 52get_libgcc_new () {
 53}
 54
52get_libgcc () { 55get_libgcc () {
53 _subdir="$1" 56 _subdir="$1"
54 mkdir -p $_TOP/gnu/lib/lib$_subdir/arch 57 mkdir -p $_TOP/gnu/lib/lib$_subdir/arch
55 58
56 case "$_subdir" in 59 case "$_subdir" in
57 gcc3) 60 gcc3)
58 _extravars="USE_COLLECT2 LIB2FUNCS_1 LIB2FUNCS_2 xm_file" 61 _extravars="USE_COLLECT2 LIB2FUNCS_1 LIB2FUNCS_2 xm_file"
59 _archsubdir="" 62 _archsubdir=""
60 ;; 63 ;;
61 gcc4) 64 gcc4)
62 _extravars="COLLECT2 UNWIND_H xm_include_list" 65 _extravars="COLLECT2 UNWIND_H xm_include_list"
63 _archsubdir="" 66 _archsubdir=""
64 ;; 67 ;;
65 esac 68 esac
66 69
67 # DPBIT, FPBIT only used on mn10[23]00, we don't need them. 70 # DPBIT, FPBIT only used on mn10[23]00, we don't need them.
68 # XXX we should probably grab everything Just In Case for 71 # XXX we should probably grab everything Just In Case for
69 # the future. 72 # the future.
70 { 73 {
71 getvars gcc/Makefile \ 74 getvars gcc/Makefile \
72 INCLUDES LIB2ADD LIB2ADDEH \ 75 INCLUDES LIB2ADD LIB2ADDEH \
73 LIB1ASMFUNCS LIB1ASMSRC \ 76 LIB1ASMFUNCS LIB1ASMSRC \
74 LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \ 77 LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \
75 LIBGCC2_CFLAGS \ 78 LIBGCC2_CFLAGS \
76 SHLIB_MKMAP SHLIB_MKMAP_OPTS \ 79 SHLIB_MKMAP SHLIB_MKMAP_OPTS \
77 SHLIB_MAPFILES SHLIB_NM_FLAGS \ 80 SHLIB_MAPFILES SHLIB_NM_FLAGS \
78 EXTRA_HEADERS xm_defines \ 81 EXTRA_HEADERS xm_defines \
79 tm_defines ${_extravars} 82 tm_defines ${_extravars}
80 } | write_mk gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH.mk 83 } | write_mk gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH.mk
 84
 85 # Generate new style files.
 86 if [ -n "${MKNATIVE_LIBGCC_NEW} ]
 87 get_libgcc_new
 88 fi
81} 89}
82 90
83##### gnu/lib/libgcov ##### 91##### gnu/lib/libgcov #####
84 92
85get_libgcov () { 93get_libgcov () {
86 _subdir="$1" 94 _subdir="$1"
87 95
88 mkdir -p $_TOP/gnu/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH 96 mkdir -p $_TOP/gnu/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH
89 97
90 { 98 {
91 getvars gcc/Makefile \ 99 getvars gcc/Makefile \
92 LIBGCOV 100 LIBGCOV
93 } | write_mk gnu/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH/defs.mk 101 } | write_mk gnu/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH/defs.mk
94 102
95 write_c gnu/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH/gcov-iov.h \ 103 write_c gnu/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH/gcov-iov.h \
96 <$_TMPDIR/gcc/gcov-iov.h 104 <$_TMPDIR/gcc/gcov-iov.h
97 105
98} 106}
99 107
100##### gnu/usr.bin/gcc[34]/libiberty ##### 108##### gnu/usr.bin/gcc[34]/libiberty #####
101 109
102get_gcc_libiberty () { 110get_gcc_libiberty () {
103 _subdir="$1" 111 _subdir="$1"
104 mkdir -p $_TOP/gnu/usr.bin/$_subdir/libiberty/arch/$MACHINE_ARCH 112 mkdir -p $_TOP/gnu/usr.bin/$_subdir/libiberty/arch/$MACHINE_ARCH
105 113
106 getvars libiberty/Makefile \ 114 getvars libiberty/Makefile \
107 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 115 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
108 | write_mk gnu/usr.bin/$_subdir/libiberty/defs.mk 116 | write_mk gnu/usr.bin/$_subdir/libiberty/defs.mk
109 117
110 write_c gnu/usr.bin/$_subdir/libiberty/arch/$MACHINE_ARCH/config.h \ 118 write_c gnu/usr.bin/$_subdir/libiberty/arch/$MACHINE_ARCH/config.h \
111 <$_TMPDIR/libiberty/config.h 119 <$_TMPDIR/libiberty/config.h
112} 120}
113 121
114##### gnu/lib/libobjc ##### 122##### gnu/lib/libobjc #####
115 123
116get_libobjc () { 124get_libobjc () {
117 case "$1" in 125 case "$1" in
118 *4) 126 *4)
119 _subdir="$1/arch/$MACHINE_ARCH" 127 _subdir="$1/arch/$MACHINE_ARCH"
120 _options="ALL_OPT_FILES" 128 _options="ALL_OPT_FILES"
121 _unwind="UNWIND_H" 129 _unwind="UNWIND_H"
122 ;; 130 ;;
123 *) 131 *)
124 _subdir="$1" 132 _subdir="$1"
125 _options="" 133 _options=""
126 _unwind="" 134 _unwind=""
127 ;; 135 ;;
128 esac 136 esac
129 137
130 mkdir -p $_TOP/gnu/lib/$_subdir 138 mkdir -p $_TOP/gnu/lib/$_subdir
131 139
132 { 140 {
133 if [ -n "$_options" ]; then 141 if [ -n "$_options" ]; then
134 getvars gcc/Makefile $_options 142 getvars gcc/Makefile $_options
135 fi 143 fi
136 getvars $_PLATFORM/libobjc/Makefile \ 144 getvars $_PLATFORM/libobjc/Makefile \
137 ALL_CFLAGS INCLUDES OBJS OBJC_H \ 145 ALL_CFLAGS INCLUDES OBJS OBJC_H \
138 | sed "s,$_GNU_DIST,\${GNUHOSTDIST},g" 146 | sed "s,$_GNU_DIST,\${GNUHOSTDIST},g"
139 if [ -n "$_unwind" ]; then 147 if [ -n "$_unwind" ]; then
140 getvars gcc/Makefile $_unwind 148 getvars gcc/Makefile $_unwind
141 fi 149 fi
142 } | write_mk gnu/lib/$_subdir/defs.mk 150 } | write_mk gnu/lib/$_subdir/defs.mk
143 151
144 write_c gnu/lib/$_subdir/config.h \ 152 write_c gnu/lib/$_subdir/config.h \
145 <$_TMPDIR/$_PLATFORM/libobjc/config.h 153 <$_TMPDIR/$_PLATFORM/libobjc/config.h
146} 154}
147 155
148##### gnu/lib/libstdc++-v3 ##### 156##### gnu/lib/libstdc++-v3 #####
149 157
150get_libstdcxx_v3 () { 158get_libstdcxx_v3 () {
151 _subdir="$1" 159 _subdir="$1"
152 mkdir -p $_TOP/gnu/lib/$_subdir/arch/$MACHINE_ARCH 160 mkdir -p $_TOP/gnu/lib/$_subdir/arch/$MACHINE_ARCH
153 161
154 case ${_subdir} in 162 case ${_subdir} in
155 *4) 163 *4)
156 _src_CC_files="atomicity_file CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_CC CLOCALE_CC BASIC_FILE_CC" 164 _src_CC_files="atomicity_file CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_CC CLOCALE_CC BASIC_FILE_CC"
157 _headers1="host_headers debug_headers tr1_headers c_compatibility_headers_extra" 165 _headers1="host_headers debug_headers tr1_headers c_compatibility_headers_extra"
158 _headers2="thread_host_headers host_headers_extra" 166 _headers2="thread_host_headers host_headers_extra"
159 _build_headers="c++allocator.h c++config.h cxxabi_tweaks.h gthr-default.h gthr-posix.h gthr-single.h gthr-tpf.h gthr.h" 167 _build_headers="c++allocator.h c++config.h cxxabi_tweaks.h gthr-default.h gthr-posix.h gthr-single.h gthr-tpf.h gthr.h"
160 _unwind="UNWIND_H" 168 _unwind="UNWIND_H"
161 ;; 169 ;;
162 *) 170 *)
163 _src_CC_files="" 171 _src_CC_files=""
164 _headers1="target_headers" 172 _headers1="target_headers"
165 _headers2="thread_target_headers target_headers_extra" 173 _headers2="thread_target_headers target_headers_extra"
166 _build_headers="c++config.h gthr-default.h gthr-posix.h gthr-single.h gthr.h" 174 _build_headers="c++config.h gthr-default.h gthr-posix.h gthr-single.h gthr.h"
167 _unwind="" 175 _unwind=""
168 ;; 176 ;;
169 esac 177 esac
170 178
171 # build files 179 # build files
172 for h in $_build_headers; do 180 for h in $_build_headers; do
173 write_c gnu/lib/$_subdir/arch/$MACHINE_ARCH/$h \ 181 write_c gnu/lib/$_subdir/arch/$MACHINE_ARCH/$h \
174 <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h 182 <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h
175 done 183 done
176 184
177 write_c gnu/lib/$_subdir/arch/$MACHINE_ARCH/config.h \ 185 write_c gnu/lib/$_subdir/arch/$MACHINE_ARCH/config.h \
178 <$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h 186 <$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h
179 187
180 { 188 {
181 # libmath 189 # libmath
182 getvars $_PLATFORM/libstdc++-v3/libmath/Makefile \ 190 getvars $_PLATFORM/libstdc++-v3/libmath/Makefile \
183 libmath_la_SOURCES libmath_la_LIBADD 191 libmath_la_SOURCES libmath_la_LIBADD
184 192
185 # libsupc++ 193 # libsupc++
186 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 194 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \
187 sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/' 195 sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/'
188 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 196 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \
189 c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/' 197 c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/'
190 198
191 # src 199 # src
192 getvars $_PLATFORM/libstdc++-v3/src/Makefile \ 200 getvars $_PLATFORM/libstdc++-v3/src/Makefile \
193 sources $_src_CC_files SECTION_FLAGS | sed 's/^G_sources=/G_SRC_SOURCES=/' 201 sources $_src_CC_files SECTION_FLAGS | sed 's/^G_sources=/G_SRC_SOURCES=/'
194 202
195 # include 203 # include
196 getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 204 getvars $_PLATFORM/libstdc++-v3/include/Makefile \
197 c_base_headers_rename std_headers_rename 205 c_base_headers_rename std_headers_rename
198 getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 206 getvars $_PLATFORM/libstdc++-v3/include/Makefile \
199 bits_headers backward_headers ext_headers c_base_headers_extra \ 207 bits_headers backward_headers ext_headers c_base_headers_extra \
200 $_headers1 | sed -e 's#/[^ ][^ ]*/##g' -e 's/\${GNUHOSTDIST}//g' 208 $_headers1 | sed -e 's#/[^ ][^ ]*/##g' -e 's/\${GNUHOSTDIST}//g'
201 getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 209 getvars $_PLATFORM/libstdc++-v3/include/Makefile \
202 $_headers2 | sed -e 's#\./[^ ][^ ]*/##g' -e 's/\${GNUHOSTDIST}//g' 210 $_headers2 | sed -e 's#\./[^ ][^ ]*/##g' -e 's/\${GNUHOSTDIST}//g'
203 211
204 if [ -n "$_unwind" ]; then 212 if [ -n "$_unwind" ]; then
205 getvars gcc/Makefile $_unwind 213 getvars gcc/Makefile $_unwind
206 fi 214 fi
207 } | write_mk gnu/lib/$_subdir/arch/$MACHINE_ARCH/defs.mk 215 } | write_mk gnu/lib/$_subdir/arch/$MACHINE_ARCH/defs.mk
208} 216}
209 217
210##### gnu/usr.bin/gcc3 ##### 218##### gnu/usr.bin/gcc3 #####
211 219
212get_gcc () { 220get_gcc () {
213 _subdir="$1" 221 _subdir="$1"
214 mkdir -p $_TOP/gnu/usr.bin/$_subdir/arch/$MACHINE_ARCH 222 mkdir -p $_TOP/gnu/usr.bin/$_subdir/arch/$MACHINE_ARCH
215 case ${_subdir} in 223 case ${_subdir} in
216 gcc4) 224 gcc4)
217 mkdir -p $_TOP/gnu/usr.bin/$_subdir/libcpp/arch/$MACHINE_ARCH 225 mkdir -p $_TOP/gnu/usr.bin/$_subdir/libcpp/arch/$MACHINE_ARCH
218 _buildname="BUILD_" 226 _buildname="BUILD_"
219 _libcppsubdir="" 227 _libcppsubdir=""
220 _extravars="TM_H ALL_OPT_FILES" 228 _extravars="TM_H ALL_OPT_FILES"
221 _hconfig_h="" 229 _hconfig_h=""
222 _extravars2="tm_file_list build_xm_include_list" 230 _extravars2="tm_file_list build_xm_include_list"
223 _extravars3="tm_p_include_list" 231 _extravars3="tm_p_include_list"
224  232
225 ;; 233 ;;
226 *) 234 *)
227 _buildname="HOST_" 235 _buildname="HOST_"
228 _libcppsubdir="gcc/" 236 _libcppsubdir="gcc/"
229 _extravars="" 237 _extravars=""
230 _hconfig_h="HCONFIG_H" 238 _hconfig_h="HCONFIG_H"
231 _extravars2="" 239 _extravars2=""
232 _extravars3="" 240 _extravars3=""
233 ;; 241 ;;
234 esac 242 esac
235 243
236 { 244 {
237 getvars gcc/Makefile \ 245 getvars gcc/Makefile \
238 ${_buildname}EARLY_SUPPORT ${_buildname}ERRORS ${_buildname}PRINT \ 246 ${_buildname}EARLY_SUPPORT ${_buildname}ERRORS ${_buildname}PRINT \
239 ${_buildname}RTL ${_buildname}SUPPORT ${_buildname}VARRAY | \ 247 ${_buildname}RTL ${_buildname}SUPPORT ${_buildname}VARRAY | \
240 sed -e 's#build/errors.o#build-errors.o#g' \ 248 sed -e 's#build/errors.o#build-errors.o#g' \
241 -e 's#build/print-rtl.o#build-print-rtl.o#g' \ 249 -e 's#build/print-rtl.o#build-print-rtl.o#g' \
242 -e 's#build/rtl.o#build-rtl.o#g' \ 250 -e 's#build/rtl.o#build-rtl.o#g' \
243 -e 's#build/varray.o#build-varray.o#g' \ 251 -e 's#build/varray.o#build-varray.o#g' \
244 -e 's#build/ggc-none.o#build-ggc-none.o#g' \ 252 -e 's#build/ggc-none.o#build-ggc-none.o#g' \
245 -e 's#build/##g' 253 -e 's#build/##g'
246 getvars gcc/Makefile \ 254 getvars gcc/Makefile \
247 ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \ 255 ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \
248 GCOV_OBJS PROTO_OBJS ${_extravars1} \ 256 GCOV_OBJS PROTO_OBJS ${_extravars1} \
249 INCLUDES md_file OBJC_OBJS OBJS out_file version \ 257 INCLUDES md_file OBJC_OBJS OBJS out_file version \
250 BUILD_PREFIX RTL_H TREE_H ${_hconfig_h} BASIC_BLOCK_H GCC_H \ 258 BUILD_PREFIX RTL_H TREE_H ${_hconfig_h} BASIC_BLOCK_H GCC_H \
251 GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \ 259 GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \
252 GTFILES GTFILES_LANG_DIR_NAMES \ 260 GTFILES GTFILES_LANG_DIR_NAMES \
253 tm_defines host_xm_file host_xm_defines tm_p_file \ 261 tm_defines host_xm_file host_xm_defines tm_p_file \
254 target_cpu_default ${_extravars} ${_extravars2} \ 262 target_cpu_default ${_extravars} ${_extravars2} \
255 lang_specs_files ${_extravars3} 263 lang_specs_files ${_extravars3}
256 getvars gcc/Makefile \ 264 getvars gcc/Makefile \
257 LIB2ADDEHDEP | sed 's/unwind.inc//' 265 LIB2ADDEHDEP | sed 's/unwind.inc//'
258 getvars gcc/Makefile \ 266 getvars gcc/Makefile \
259 CXX_OBJS CXX_C_OBJS | sed 's/cp\///g' 267 CXX_OBJS CXX_C_OBJS | sed 's/cp\///g'
260 getvars gcc/Makefile \ 268 getvars gcc/Makefile \
261 F77_OBJS | sed 's/f\///g' 269 F77_OBJS | sed 's/f\///g'
262 case ${_subdir} in 270 case ${_subdir} in
263 gcc4) 271 gcc4)
264 getvars libcpp/Makefile \ 272 getvars libcpp/Makefile \
265 libcpp_a_OBJS 273 libcpp_a_OBJS
266 ;; 274 ;;
267 gcc3) 275 gcc3)
268 getvars gcc/Makefile \ 276 getvars gcc/Makefile \
269 LIBCPP_OBJS LIBCPP_H 277 LIBCPP_OBJS LIBCPP_H
270 ;; 278 ;;
271 esac 279 esac
272 getvars gcc/Makefile \ 280 getvars gcc/Makefile \
273 ENABLE_SHARED 281 ENABLE_SHARED
274 case ${_subdir} in 282 case ${_subdir} in
275 gcc4) 283 gcc4)
276 echo G_SHLIB_LINK="$CC -shared" 284 echo G_SHLIB_LINK="$CC -shared"
277 echo G_SHLIB_MULTILIB=. 285 echo G_SHLIB_MULTILIB=.
278 ;; 286 ;;
279 gcc3) 287 gcc3)
280 getvars gcc/Makefile \ 288 getvars gcc/Makefile \
281 SHLIB_LINK SHLIB_MULTILIB 289 SHLIB_LINK SHLIB_MULTILIB
282 ;; 290 ;;
283 esac 291 esac
284 } | write_mk gnu/usr.bin/$_subdir/arch/$MACHINE_ARCH/defs.mk 292 } | write_mk gnu/usr.bin/$_subdir/arch/$MACHINE_ARCH/defs.mk
285 293
286 case "$_subdir" in 294 case "$_subdir" in
287 gcc3) 295 gcc3)
288 hfiles='auto-host configargs cs-hconfig gencheck hconfig gthr-default' 296 hfiles='auto-host configargs cs-hconfig gencheck hconfig gthr-default'
289 ;; 297 ;;
290 gcc4) 298 gcc4)
291 write_c gnu/usr.bin/$_subdir/libcpp/arch/$MACHINE_ARCH/config.h <$_TMPDIR/libcpp/config.h 299 write_c gnu/usr.bin/$_subdir/libcpp/arch/$MACHINE_ARCH/config.h <$_TMPDIR/libcpp/config.h
292 hfiles='auto-host configargs gencheck gthr-default tm bconfig config multilib' 300 hfiles='auto-host configargs gencheck gthr-default tm bconfig config multilib'
293 ;; 301 ;;
294 esac 302 esac
295 for f in $hfiles; do 303 for f in $hfiles; do
296 write_c gnu/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h 304 write_c gnu/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
297 done 305 done
298} 306}
299 307
300##### main ##### 308##### main #####
301 309
302case "$1" in 310case "$1" in
303# .mk and .h files for libgcc bootstrap (from host build) 311# .mk and .h files for libgcc bootstrap (from host build)
304libgcc) 312libgcc)
305 get_libgcc gcc3 313 get_libgcc gcc3
306 get_crtstuff crtstuff3 314 get_crtstuff crtstuff3
307 exit 0 315 exit 0
308 ;; 316 ;;
309 317
310libgcc4) 318libgcc4)
311 get_libgcc gcc4 319 get_libgcc gcc4
312 get_crtstuff crtstuff4 320 get_crtstuff crtstuff4
313 exit 0 321 exit 0
314 ;; 322 ;;
315 323
316# gcc files 324# gcc files
317gcc4) 325gcc4)
318 get_gcc gcc4 326 get_gcc gcc4
319 get_libgcc gcc4 327 get_libgcc gcc4
320 get_libgcov gcc4 328 get_libgcov gcc4
321 get_crtstuff crtstuff4 329 get_crtstuff crtstuff4
322 get_gcc_libiberty gcc4 330 get_gcc_libiberty gcc4
323 get_libobjc libobjc4 331 get_libobjc libobjc4
324 get_libstdcxx_v3 libstdc++-v3_4 332 get_libstdcxx_v3 libstdc++-v3_4
325 exit 0 333 exit 0
326 ;; 334 ;;
327 335
328gcc3) 336gcc3)
329 get_gcc gcc3 337 get_gcc gcc3
330 get_libg2c 338 get_libg2c
331 get_libgcc gcc3 339 get_libgcc gcc3
332 get_crtstuff crtstuff3 340 get_crtstuff crtstuff3
333 get_gcc_libiberty gcc3 341 get_gcc_libiberty gcc3
334 get_libobjc libobjc3 342 get_libobjc libobjc3
335 get_libstdcxx_v3 libstdc++-v3 343 get_libstdcxx_v3 libstdc++-v3
336 exit 0 344 exit 0
337 ;; 345 ;;
338 346
339*) echo invalid arguments; exit 1;; 347*) echo invalid arguments; exit 1;;
340esac 348esac