Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tools/gcc get_libgcc_new: Teach multilib.
details: https://anonhg.NetBSD.org/src/rev/8355c19bffe2
branches: trunk
changeset: 750117:8355c19bffe2
user: uebayasi <uebayasi%NetBSD.org@localhost>
date: Thu Dec 17 15:01:33 2009 +0000
description:
get_libgcc_new: Teach multilib.
diffstat:
tools/gcc/mknative-gcc | 57 +++++++++++++++++++++++++++++++------------------
1 files changed, 36 insertions(+), 21 deletions(-)
diffs (185 lines):
diff -r b44890acc106 -r 8355c19bffe2 tools/gcc/mknative-gcc
--- a/tools/gcc/mknative-gcc Thu Dec 17 14:27:49 2009 +0000
+++ b/tools/gcc/mknative-gcc Thu Dec 17 15:01:33 2009 +0000
@@ -1,5 +1,5 @@
#!/bin/sh
-# $NetBSD: mknative-gcc,v 1.43 2009/12/01 04:59:24 uebayasi Exp $
+# $NetBSD: mknative-gcc,v 1.44 2009/12/17 15:01:33 uebayasi Exp $
#
# Shell script for generating all the constants needed for a native
# platform build of src/gnu/dist/gcc.
@@ -10,6 +10,7 @@
_TMPDIR=$2
_TOP=$3
_PLATFORM=$4
+_ABI=$5
_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'`
_GNU_DIST=`cd ${_VPATH}; pwd`
@@ -89,11 +90,12 @@
local _lib=$1
local _lib_prefix=${_lib%.*}
local _lib_suffix=${_lib#*.}
+ local _abi=${2:-'\.'}
cat build/gcc/libgcc.mk | \
- grep -v '/32/' | \
+ grep '/'${_abi}'/' | \
sed -ne '
- /^\.\/'${_lib_prefix}'\.'${_lib_suffix}': .*\.o$/ {
+ /^\'${_abi}'\/'${_lib_prefix}'\.'${_lib_suffix}': .*\.o$/ {
s,^.*/,,
s,\.o$,,
p
@@ -102,17 +104,21 @@
}
get_libgcc_list_objs_libs () {
+ local _abi=${1:-'\.'}
+
cat build/gcc/libgcc.mk | \
- grep -v '/32/' | \
- egrep '^\.\/(libgcc_s\.so|libgcc\.a|libgcc_eh\.a|libgcov\.a): (libgcc_s|libgcc|libgcc_eh|libgcov)\/.*\.o$' | \
+ grep '/'${_abi}'/' | \
+ egrep '^\'${_abi}'\/(libgcc_s\.so|libgcc\.a|libgcc_eh\.a|libgcov\.a): (libgcc_s|libgcc|libgcc_eh|libgcov)\/.*\.o$' | \
sed -e '
- s,^\.\/,,
+ s,^'${_abi}'\/,,
s,: .*/, ,
s,^\(.*\) \(.*\)$,\2 \1,
' | sort
}
get_libgcc_list_objs_srcs () {
+ local _abi=${1:-'\.'} # XXX not used
+
if [ -e $_TOP/${libgcc_db_funcs}.S ]; then
cut -f1 $_TOP/${libgcc_db_objs_libs} | sed -e 's,\.o$,,' | \
comm -23 /dev/stdin $_TOP/${libgcc_db_funcs}.S | \
@@ -128,8 +134,10 @@
}
get_libgcc_list_objs_tmplsrcs () {
+ local _abi=${1:-'\.'}
+
grep 'GCC_FOR_TARGET.*\.o$' build/gcc/libgcc.mk | \
- grep -v '/32/' | \
+ grep '/'${_abi}'/' | \
sed -ne '
s,^.* -c \([^ ]*\).* -o .*/\([^ ]*\.o\)$,\2 \1,
# basename
@@ -141,9 +149,10 @@
get_libgcc_list_objs_xflags () {
local _flags=$1
+ local _abi=${2:-'\.'}
grep 'GCC_FOR_TARGET.*\.o$' build/gcc/libgcc.mk | \
- grep -v '/32/' | \
+ grep '/'${_abi}'/' | \
sed -n '
x
:loop
@@ -157,15 +166,16 @@
}
get_libgcc_list_objs_cppflags () {
- get_libgcc_list_objs_xflags D
+ get_libgcc_list_objs_xflags D $1
}
get_libgcc_list_objs_copts () {
- get_libgcc_list_objs_xflags fmx
+ get_libgcc_list_objs_xflags fmx $1
}
get_libgcc_list_tmplsrcs () {
local _lib=$1
+ local _abi=$2 # XXX not used
local _tmplallsrcs=$( mktemp /tmp/mknative-gcc._tmplallsrcs.XXXXXX )
touch $_TOP/${libgcc_db_tmplsrcs}.tmplsrcs.${_lib%.*}
@@ -197,6 +207,8 @@
}
get_libgcc_new_analyze () {
+ local _abi=$1
+
mkdir -p $_TOP/${_machine_arch_subdir}
touch $_TOP/${libgcc_db_funcs}.S
@@ -205,18 +217,18 @@
for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do
touch $_TOP/${libgcc_db_funcs}.${_lib%.*}
- get_libgcc_list_funcs_lib $_lib | \
+ get_libgcc_list_funcs_lib $_lib $_abi | \
writefile ${libgcc_db_funcs}.${_lib%.*}
done
- get_libgcc_list_objs_libs | writefile ${libgcc_db_objs_libs}
- get_libgcc_list_objs_srcs | writefile ${libgcc_db_objs_srcs}
- get_libgcc_list_objs_tmplsrcs | writefile ${libgcc_db_objs_tmplsrcs}
- get_libgcc_list_objs_cppflags | writefile ${libgcc_db_objs_cppflags}
- get_libgcc_list_objs_copts | writefile ${libgcc_db_objs_copts}
+ get_libgcc_list_objs_libs $_abi | writefile ${libgcc_db_objs_libs}
+ get_libgcc_list_objs_srcs $_abi | writefile ${libgcc_db_objs_srcs}
+ get_libgcc_list_objs_tmplsrcs $_abi | writefile ${libgcc_db_objs_tmplsrcs}
+ get_libgcc_list_objs_cppflags $_abi | writefile ${libgcc_db_objs_cppflags}
+ get_libgcc_list_objs_copts $_abi | writefile ${libgcc_db_objs_copts}
for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do
- get_libgcc_list_tmplsrcs $_lib
+ get_libgcc_list_tmplsrcs $_lib $_abi
done
}
@@ -299,6 +311,8 @@
}
get_libgcc_new_generate () {
+ local _abi=$1
+
for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do
for _tmpl in tmplsrcs tmplfpsrcs tmplasmsrcs; do
eval get_libgcc_gen_tmplsrcs_${_tmpl} $_lib | \
@@ -319,10 +333,11 @@
get_libgcc_new () {
_subdir="$1"
+ _abi="$2"
# List of generated files.
- _machine_arch_subdir=gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH
+ _machine_arch_subdir=gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH/$_abi
libgcc_db_funcs=${_machine_arch_subdir}/funcs
libgcc_db_tmplsrcs=${_machine_arch_subdir}/tmplsrcs
@@ -332,7 +347,7 @@
libgcc_db_objs_cppflags=${_machine_arch_subdir}/objs.cppflags
libgcc_db_objs_copts=${_machine_arch_subdir}/objs.copts
- get_libgcc_new_analyze
+ get_libgcc_new_analyze $_abi
libgcc_libs_mk=${_machine_arch_subdir}/libs
libgcc_srcs_mk=${_machine_arch_subdir}/srcs.mk
@@ -340,7 +355,7 @@
libgcc_srcs_mk_cppflags=${_machine_arch_subdir}/srcs.cppflags.mk
libgcc_srcs_mk_copts=${_machine_arch_subdir}/srcs.copts.mk
- get_libgcc_new_generate
+ get_libgcc_new_generate $_abi
}
get_libgcc () {
@@ -376,7 +391,7 @@
# Generate new style files.
if [ -n "${MKNATIVE_LIBGCC_NEW}" ]; then
- get_libgcc_new $_subdir
+ get_libgcc_new $_subdir $_ABI
fi
}
Home |
Main Index |
Thread Index |
Old Index