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 (expand / 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,15 +1,15 @@ @@ -1,15 +1,15 @@
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
@@ -39,26 +39,29 @@ get_libg2c () { @@ -39,26 +39,29 @@ get_libg2c () {
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 ;;
@@ -68,26 +71,31 @@ get_libgcc () { @@ -68,26 +71,31 @@ get_libgcc () {
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