Mon Nov 30 08:20:23 2009 UTC ()
Move these analyzing functions into one place, get_libgcc_new_analyze().


(uebayasi)
diff -r1.34 -r1.35 src/tools/gcc/mknative-gcc

cvs diff -r1.34 -r1.35 src/tools/gcc/mknative-gcc (expand / switch to unified diff)

--- src/tools/gcc/mknative-gcc 2009/11/30 08:05:41 1.34
+++ src/tools/gcc/mknative-gcc 2009/11/30 08:20:23 1.35
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
1#!/bin/sh 1#!/bin/sh
2# $NetBSD: mknative-gcc,v 1.34 2009/11/30 08:05:41 uebayasi Exp $ 2# $NetBSD: mknative-gcc,v 1.35 2009/11/30 08:20:23 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
@@ -131,27 +131,27 @@ get_libgcc_list_objs_xflags () { @@ -131,27 +131,27 @@ get_libgcc_list_objs_xflags () {
131 h 131 h
132 t loop 132 t loop
133 ' | sort 133 ' | sort
134} 134}
135 135
136get_libgcc_list_objs_cppflags () { 136get_libgcc_list_objs_cppflags () {
137 get_libgcc_list_objs_xflags D 137 get_libgcc_list_objs_xflags D
138} 138}
139 139
140get_libgcc_list_objs_copts () { 140get_libgcc_list_objs_copts () {
141 get_libgcc_list_objs_xflags fmx 141 get_libgcc_list_objs_xflags fmx
142} 142}
143 143
144get_libgcc_libgcc_mk_libs_list_tmpsrcs_files () { 144get_libgcc_list_tmpsrcs () {
145 local _lib=$1 145 local _lib=$1
146 local _tmpallsrcs=$( mktemp /tmp/mknative-gcc._tmpallsrcs.XXXXXX ) 146 local _tmpallsrcs=$( mktemp /tmp/mknative-gcc._tmpallsrcs.XXXXXX )
147 147
148 touch $_TOP/${libgcc_db_tmpsrcs}.tmpsrcs.${_lib%.*} 148 touch $_TOP/${libgcc_db_tmpsrcs}.tmpsrcs.${_lib%.*}
149 touch $_TOP/${libgcc_db_tmpsrcs}.tmpfpsrcs.${_lib%.*} 149 touch $_TOP/${libgcc_db_tmpsrcs}.tmpfpsrcs.${_lib%.*}
150 touch $_TOP/${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*} 150 touch $_TOP/${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*}
151 151
152 # all files 152 # all files
153 local _lib_prefix=${_lib%.*} 153 local _lib_prefix=${_lib%.*}
154 local _lib_suffix=${_lib#*.} 154 local _lib_suffix=${_lib#*.}
155 join $_TOP/$libgcc_db_objs_libs $_TOP/$libgcc_db_objs_tmpsrcs | \ 155 join $_TOP/$libgcc_db_objs_libs $_TOP/$libgcc_db_objs_tmpsrcs | \
156 grep ${_lib_prefix}'\.'${_lib_suffix} | cut -d' ' -f 3 | sort -u > \ 156 grep ${_lib_prefix}'\.'${_lib_suffix} | cut -d' ' -f 3 | sort -u > \
157 $_tmpallsrcs 157 $_tmpallsrcs
@@ -163,69 +163,78 @@ get_libgcc_libgcc_mk_libs_list_tmpsrcs_f @@ -163,69 +163,78 @@ get_libgcc_libgcc_mk_libs_list_tmpsrcs_f
163 # TMPASMSRCS = $(LIB1ASMSRC) 163 # TMPASMSRCS = $(LIB1ASMSRC)
164 grep '\$(LIB1ASMSRC)' <$_tmpallsrcs | sort -u | \ 164 grep '\$(LIB1ASMSRC)' <$_tmpallsrcs | sort -u | \
165 writefile ${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*} 165 writefile ${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*}
166 166
167 # TMPSRCS is anything else; exclude TMPFPSRCS and TMPASMSRCS 167 # TMPSRCS is anything else; exclude TMPFPSRCS and TMPASMSRCS
168 cat $_tmpallsrcs | \ 168 cat $_tmpallsrcs | \
169 comm -23 /dev/stdin $_TOP/${libgcc_db_tmpsrcs}.tmpfpsrcs.${_lib%.*} | \ 169 comm -23 /dev/stdin $_TOP/${libgcc_db_tmpsrcs}.tmpfpsrcs.${_lib%.*} | \
170 comm -23 /dev/stdin $_TOP/${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*} | \ 170 comm -23 /dev/stdin $_TOP/${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*} | \
171 writefile ${libgcc_db_tmpsrcs}.tmpsrcs.${_lib%.*} 171 writefile ${libgcc_db_tmpsrcs}.tmpsrcs.${_lib%.*}
172 172
173 rm -f $_tmpallsrcs 173 rm -f $_tmpallsrcs
174} 174}
175 175
 176get_libgcc_new_analyze () {
 177 mkdir -p $_TOP/${_machine_arch_subdir}
 178
 179 get_libgcc_list_funcs_asm | \
 180 writefile ${libgcc_db_funcs}.S
 181
 182 for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do
 183 get_libgcc_list_funcs_lib $_lib | \
 184 writefile ${libgcc_db_funcs}.${_lib%.*}
 185 done
 186
 187 get_libgcc_list_objs_libs | writefile ${libgcc_db_objs_libs}
 188 get_libgcc_list_objs_srcs | writefile ${libgcc_db_objs_srcs}
 189 get_libgcc_list_objs_tmpsrcs | writefile ${libgcc_db_objs_tmpsrcs}
 190 get_libgcc_list_objs_cppflags | writefile ${libgcc_db_objs_cppflags}
 191 get_libgcc_list_objs_copts | writefile ${libgcc_db_objs_copts}
 192
 193 for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do
 194 get_libgcc_list_tmpsrcs $_lib
 195 done
 196}
 197
 198#####
 199
 200get_libgcc_new_generate () {
 201}
 202
176##### 203#####
177 204
178get_libgcc_new () { 205get_libgcc_new () {
179 _subdir="$1" 206 _subdir="$1"
180 207
181 # List of generated files. 208 # List of generated files.
182 209
183 _machine_arch_subdir=gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH 210 _machine_arch_subdir=gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH
184 211
185 libgcc_db_funcs=${_machine_arch_subdir}/funcs 212 libgcc_db_funcs=${_machine_arch_subdir}/funcs
186 libgcc_db_tmpsrcs=${_machine_arch_subdir}/tmpsrcs 213 libgcc_db_tmpsrcs=${_machine_arch_subdir}/tmpsrcs
187 libgcc_db_objs_libs=${_machine_arch_subdir}/objs.libs 214 libgcc_db_objs_libs=${_machine_arch_subdir}/objs.libs
188 libgcc_db_objs_srcs=${_machine_arch_subdir}/objs.srcs 215 libgcc_db_objs_srcs=${_machine_arch_subdir}/objs.srcs
189 libgcc_db_objs_tmpsrcs=${_machine_arch_subdir}/objs.tmpsrcs 216 libgcc_db_objs_tmpsrcs=${_machine_arch_subdir}/objs.tmpsrcs
190 libgcc_db_objs_cppflags=${_machine_arch_subdir}/objs.cppflags 217 libgcc_db_objs_cppflags=${_machine_arch_subdir}/objs.cppflags
191 libgcc_db_objs_copts=${_machine_arch_subdir}/objs.copts 218 libgcc_db_objs_copts=${_machine_arch_subdir}/objs.copts
192 219
193 libgcc_srcs_mk=${_machine_arch_subdir}/srcs.mk 220 libgcc_srcs_mk=${_machine_arch_subdir}/srcs.mk
194 libgcc_srcs_mk_tmpsrc=${_machine_arch_subdir}/srcs.tmpsrc.mk 221 libgcc_srcs_mk_tmpsrc=${_machine_arch_subdir}/srcs.tmpsrc.mk
195 libgcc_srcs_mk_cppflags=${_machine_arch_subdir}/srcs.cppflags.mk 222 libgcc_srcs_mk_cppflags=${_machine_arch_subdir}/srcs.cppflags.mk
196 libgcc_srcs_mk_copts=${_machine_arch_subdir}/srcs.copts.mk 223 libgcc_srcs_mk_copts=${_machine_arch_subdir}/srcs.copts.mk
197 224
198 # Collect data from gcc/Makefile and gcc/libgcc.mk. 225 get_libgcc_new_analyze
199 226
200 mkdir -p $_TOP/${_machine_arch_subdir} 227 get_libgcc_new_generate
201 
202 get_libgcc_list_funcs_asm | \ 
203 writefile ${libgcc_db_funcs}.S 
204 
205 for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do 
206 get_libgcc_list_funcs_lib $_lib | \ 
207 writefile ${libgcc_db_funcs}.${_lib%.*} 
208 done 
209 
210 get_libgcc_list_objs_libs | writefile ${libgcc_db_objs_libs} 
211 get_libgcc_list_objs_srcs | writefile ${libgcc_db_objs_srcs} 
212 get_libgcc_list_objs_tmpsrcs | writefile ${libgcc_db_objs_tmpsrcs} 
213 get_libgcc_list_objs_cppflags | writefile ${libgcc_db_objs_cppflags} 
214 get_libgcc_list_objs_copts | writefile ${libgcc_db_objs_copts} 
215 
216 for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do 
217 get_libgcc_libgcc_mk_libs_list_tmpsrcs_files $_lib 
218 done 
219} 228}
220 229
221get_libgcc () { 230get_libgcc () {
222 _subdir="$1" 231 _subdir="$1"
223 mkdir -p $_TOP/gnu/lib/lib$_subdir/arch 232 mkdir -p $_TOP/gnu/lib/lib$_subdir/arch
224 233
225 case "$_subdir" in 234 case "$_subdir" in
226 gcc3) 235 gcc3)
227 _extravars="USE_COLLECT2 LIB2FUNCS_1 LIB2FUNCS_2 xm_file" 236 _extravars="USE_COLLECT2 LIB2FUNCS_1 LIB2FUNCS_2 xm_file"
228 _archsubdir="" 237 _archsubdir=""
229 ;; 238 ;;
230 gcc4) 239 gcc4)
231 _extravars="COLLECT2 UNWIND_H xm_include_list" 240 _extravars="COLLECT2 UNWIND_H xm_include_list"