Module Name: src Committed By: uebayasi Date: Mon Nov 30 06:56:15 UTC 2009
Modified Files: src/tools/gcc: mknative-gcc Log Message: - Generate a list of *.o -> lib*.{a,so} mapping. This is also known by parsing dependency lines in libgcc.mk. - Generate a list of *.o -> *.{c,S} mapping. *.S files are known as ${LIB1ASMFUNCS}. Assume other *.o files are built from *.c. This information is needed to generated wrapper sources later. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/tools/gcc/mknative-gcc Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tools/gcc/mknative-gcc diff -u src/tools/gcc/mknative-gcc:1.29 src/tools/gcc/mknative-gcc:1.30 --- src/tools/gcc/mknative-gcc:1.29 Mon Nov 30 06:40:17 2009 +++ src/tools/gcc/mknative-gcc Mon Nov 30 06:56:15 2009 @@ -1,5 +1,5 @@ #!/bin/sh -# $NetBSD: mknative-gcc,v 1.29 2009/11/30 06:40:17 uebayasi Exp $ +# $NetBSD: mknative-gcc,v 1.30 2009/11/30 06:56:15 uebayasi Exp $ # # Shell script for generating all the constants needed for a native # platform build of src/gnu/dist/gcc. @@ -84,6 +84,28 @@ ' build/gcc/libgcc.mk | sort } +get_libgcc_list_objs_libs () { + cat build/gcc/libgcc.mk | \ + egrep '^\.\/(libgcc_s\.so|libgcc\.a|libgcc_eh\.a|libgcov\.a): (libgcc_s|libgcc|libgcc_eh|libgcov)\/.*\.o$' | \ + sed -e ' + s,^\.\/,, + s,: .*/, , + s,^\(.*\) \(.*\)$,\2 \1, + ' | sort +} + +get_libgcc_list_objs_srcs () { + { + cut -f1 $_TOP/${libgcc_db_objs_libs} | sed -e 's,\.o$,,' | \ + comm -23 /dev/stdin $_TOP/${libgcc_db_funcs}.S | \ + sed -e 's,\(.*\),\1.o \1.c,' + + cut -f1 $_TOP/${libgcc_db_objs_libs} | sed -e 's,\.o$,,' | \ + comm -12 /dev/stdin $_TOP/${libgcc_db_funcs}.S | \ + sed -e 's,\(.*\),\1.o \1.S,' + } | sort +} + get_libgcc_new () { _subdir="$1" @@ -106,6 +128,8 @@ # Collect data from gcc/Makefile and gcc/libgcc.mk. + mkdir -p $_TOP/${_machine_arch_subdir} + get_libgcc_list_funcs_asm | \ writefile ${libgcc_db_funcs}.S @@ -113,6 +137,9 @@ get_libgcc_list_funcs_lib $_lib | \ 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 () {