Mon Jul 31 01:48:37 2023 UTC ()
updates for GCC 12 (relatively tiny).

- gcov-iov.h is now called version.h and we build it directly.
- need to explicitly ask for bversion.h gtyp-input.list to be built.


(mrg)
diff -r1.106 -r1.107 src/tools/gcc/Makefile
diff -r1.116 -r1.117 src/tools/gcc/mknative-gcc

cvs diff -r1.106 -r1.107 src/tools/gcc/Makefile (switch to unified diff)

--- src/tools/gcc/Makefile 2023/07/28 08:05:29 1.106
+++ src/tools/gcc/Makefile 2023/07/31 01:48:37 1.107
@@ -1,288 +1,294 @@ @@ -1,288 +1,294 @@
1# $NetBSD: Makefile,v 1.106 2023/07/28 08:05:29 mrg Exp $ 1# $NetBSD: Makefile,v 1.107 2023/07/31 01:48:37 mrg Exp $
2 2
3.include <bsd.hostinit.mk> 3.include <bsd.hostinit.mk>
4 4
5GCC_LANGUAGES=c c++ objc 5GCC_LANGUAGES=c c++ objc
6MODULE= ${EXTERNAL_GCC_SUBDIR} 6MODULE= ${EXTERNAL_GCC_SUBDIR}
7 7
8GCCDIST= ${.CURDIR}/../../external/gpl3/${EXTERNAL_GCC_SUBDIR}/dist 8GCCDIST= ${.CURDIR}/../../external/gpl3/${EXTERNAL_GCC_SUBDIR}/dist
9GNUHOSTDIST= ${GCCDIST} 9GNUHOSTDIST= ${GCCDIST}
10 10
11.if ${HAVE_GCC} == 10 11.if ${HAVE_GCC} == 10
12MKNATIVE= ${.CURDIR}/mknative-gcc.old 12MKNATIVE= ${.CURDIR}/mknative-gcc.old
13.endif 13.endif
14 14
15# Defaults 15# Defaults
16CC_FOR_BUILD= ${HOST_CXX:Q} 16CC_FOR_BUILD= ${HOST_CXX:Q}
17MKNATIVE?= ${.CURDIR}/mknative-gcc 17MKNATIVE?= ${.CURDIR}/mknative-gcc
18 18
19.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "sparc64" 19.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "sparc64"
20MULTILIB_ARGS= --enable-multilib 20MULTILIB_ARGS= --enable-multilib
21.else 21.else
22MULTILIB_ARGS= --disable-multilib 22MULTILIB_ARGS= --disable-multilib
23.endif 23.endif
24 24
25.if ${MKSOFTFLOAT} != "no" && ${MACHINE_CPU} != "m68k" \ 25.if ${MKSOFTFLOAT} != "no" && ${MACHINE_CPU} != "m68k" \
26 && ${MACHINE_CPU} != "or1k" && ${MACHINE_CPU} != "sh3" 26 && ${MACHINE_CPU} != "or1k" && ${MACHINE_CPU} != "sh3"
27SOFTFLOAT_ARGS= -with-float=soft 27SOFTFLOAT_ARGS= -with-float=soft
28.endif 28.endif
29 29
30.include "gcc-version.mk" 30.include "gcc-version.mk"
31 31
32COMMON_CONFIGURE_ARGS= --target=${MACHINE_GNU_PLATFORM} \ 32COMMON_CONFIGURE_ARGS= --target=${MACHINE_GNU_PLATFORM} \
33 --enable-long-long \ 33 --enable-long-long \
34 --enable-threads \ 34 --enable-threads \
35 --with-bugurl=http://www.NetBSD.org/support/send-pr.html \ 35 --with-bugurl=http://www.NetBSD.org/support/send-pr.html \
36 --with-pkgversion="NetBSD ${NETBSD_GCC_VERSION}" \ 36 --with-pkgversion="NetBSD ${NETBSD_GCC_VERSION}" \
37 --with-system-zlib \ 37 --with-system-zlib \
38 --without-isl \ 38 --without-isl \
39 --enable-__cxa_atexit \ 39 --enable-__cxa_atexit \
40 --enable-libstdcxx-time=rt \ 40 --enable-libstdcxx-time=rt \
41 --enable-libstdcxx-threads \ 41 --enable-libstdcxx-threads \
42 --with-diagnostics-color=auto-if-env 42 --with-diagnostics-color=auto-if-env
43.if defined(GCC_CONFIG_ARCH.${MACHINE_ARCH}) 43.if defined(GCC_CONFIG_ARCH.${MACHINE_ARCH})
44COMMON_CONFIGURE_ARGS+= --with-arch=${GCC_CONFIG_ARCH.${MACHINE_ARCH}} 44COMMON_CONFIGURE_ARGS+= --with-arch=${GCC_CONFIG_ARCH.${MACHINE_ARCH}}
45.endif 45.endif
46.if defined(GCC_CONFIG_TUNE.${MACHINE_ARCH}) 46.if defined(GCC_CONFIG_TUNE.${MACHINE_ARCH})
47COMMON_CONFIGURE_ARGS+= --with-tune=${GCC_CONFIG_TUNE.${MACHINE_ARCH}} 47COMMON_CONFIGURE_ARGS+= --with-tune=${GCC_CONFIG_TUNE.${MACHINE_ARCH}}
48.endif 48.endif
49 49
50# Too many CPUs have one or both of these bugs, the common code should 50# Too many CPUs have one or both of these bugs, the common code should
51# default to safety. 51# default to safety.
52.if ${MACHINE_CPU} == "aarch64" 52.if ${MACHINE_CPU} == "aarch64"
53COMMON_CONFIGURE_ARGS+= --enable-fix-cortex-a53-835769 \ 53COMMON_CONFIGURE_ARGS+= --enable-fix-cortex-a53-835769 \
54 --enable-fix-cortex-a53-843419 54 --enable-fix-cortex-a53-843419
55.endif 55.endif
56 56
57.if ${HAVE_GCC} >= 7 57.if ${HAVE_GCC} >= 7
58COMMON_CONFIGURE_ARGS+= --with-default-libstdcxx-abi=new 58COMMON_CONFIGURE_ARGS+= --with-default-libstdcxx-abi=new
59.endif 59.endif
60 60
61CONFIGURE_ARGS= ${COMMON_CONFIGURE_ARGS} 61CONFIGURE_ARGS= ${COMMON_CONFIGURE_ARGS}
62CONFIGURE_ARGS+= \ 62CONFIGURE_ARGS+= \
63 --with-sysroot=${DESTDIR} \ 63 --with-sysroot=${DESTDIR} \
64 --with-mpc=${TOOLDIR} \ 64 --with-mpc=${TOOLDIR} \
65 --with-mpfr=${TOOLDIR} \ 65 --with-mpfr=${TOOLDIR} \
66 --with-gmp=${TOOLDIR} \ 66 --with-gmp=${TOOLDIR} \
67 --disable-nls \ 67 --disable-nls \
68 ${MULTILIB_ARGS} \ 68 ${MULTILIB_ARGS} \
69 ${SOFTFLOAT_ARGS} \ 69 ${SOFTFLOAT_ARGS} \
70 --program-transform-name="s,^,${MACHINE_GNU_PLATFORM}-," \ 70 --program-transform-name="s,^,${MACHINE_GNU_PLATFORM}-," \
71 --enable-languages="${GCC_LANGUAGES}" 71 --enable-languages="${GCC_LANGUAGES}"
72 72
73GCC_CPPFLAGS= -DNETBSD_TOOLS -DTARGET_SYSTEM_ROOT=0 \ 73GCC_CPPFLAGS= -DNETBSD_TOOLS -DTARGET_SYSTEM_ROOT=0 \
74 -DTARGET_SYSTEM_ROOT_RELOCATABLE  74 -DTARGET_SYSTEM_ROOT_RELOCATABLE
75# ${HOST_CPPFLAGS} 75# ${HOST_CPPFLAGS}
76 76
77MAKE_ARGS= MACHINE= MAKEINFO=${TOOL_MAKEINFO:Q} \ 77MAKE_ARGS= MACHINE= MAKEINFO=${TOOL_MAKEINFO:Q} \
78 LIBGCC= LIBGCC1= LIBGCC1_TEST= LIBGCC2= INSTALL_LIBGCC= \ 78 LIBGCC= LIBGCC1= LIBGCC1_TEST= LIBGCC2= INSTALL_LIBGCC= \
79 EXTRA_PARTS= CPPFLAGS=${GCC_CPPFLAGS:Q} \ 79 EXTRA_PARTS= CPPFLAGS=${GCC_CPPFLAGS:Q} \
80 AR=${HOST_AR:Q} RANLIB=${HOST_RANLIB:Q} 80 AR=${HOST_AR:Q} RANLIB=${HOST_RANLIB:Q}
81 81
82CONFIGURE_ENV+= gcc_cv_libc_provides_ssp=yes \ 82CONFIGURE_ENV+= gcc_cv_libc_provides_ssp=yes \
83 gcc_cv_as_sparc_gotdata_op=no 83 gcc_cv_as_sparc_gotdata_op=no
84 84
85ALL_TARGET= all-gcc 85ALL_TARGET= all-gcc
86INSTALL_TARGET= install-gcc 86INSTALL_TARGET= install-gcc
87 87
88.include "${.CURDIR}/../Makefile.gmakehost" 88.include "${.CURDIR}/../Makefile.gmakehost"
89BUILD_MAKE=${TOOL_GMAKE} 89BUILD_MAKE=${TOOL_GMAKE}
90 90
91# 91#
92# mknative-gcc specific stuff 92# mknative-gcc specific stuff
93# 93#
94 94
95MKNATIVE_CONFIG_TARGET_LIBS= 95MKNATIVE_CONFIG_TARGET_LIBS=
96 96
97MKNATIVE_CONFIG_TARGET_LIBS+= configure-target-libgcc 97MKNATIVE_CONFIG_TARGET_LIBS+= configure-target-libgcc
98MKNATIVE_CONFIG_TARGET_LIBS+= configure-target-libgomp 98MKNATIVE_CONFIG_TARGET_LIBS+= configure-target-libgomp
99 99
100MKNATIVE_CONFIG_TARGET_LIBS+= \ 100MKNATIVE_CONFIG_TARGET_LIBS+= \
101 configure-target-libstdc++-v3 \ 101 configure-target-libstdc++-v3 \
102 configure-target-libbacktrace \ 102 configure-target-libbacktrace \
103 configure-target-libobjc 103 configure-target-libobjc
104 104
105.if ${HAVE_GCC} >= 9 105.if ${HAVE_GCC} >= 9
106# XXX needs to build libstdc++ fully, which fails 106# XXX needs to build libstdc++ fully, which fails
107.if 0 107.if 0
108MKNATIVE_CONFIG_TARGET_LIBS+= \ 108MKNATIVE_CONFIG_TARGET_LIBS+= \
109 configure-target-libsanitizer 109 configure-target-libsanitizer
110.endif 110.endif
111.endif 111.endif
112 112
 113.if ${HAVE_GCC} <= 10
 114EXTRA_FILES= gcov-iov.h
 115.else
 116EXTRA_FILES= bversion.h gtyp-input.list
 117.endif
 118
113BINENV= /usr/bin/env -i 119BINENV= /usr/bin/env -i
114 120
115 121
116MKNATIVE_ENV= ${BINENV} ${CONFIGURE_ENV:NC*:NLD*} \ 122MKNATIVE_ENV= ${BINENV} ${CONFIGURE_ENV:NC*:NLD*} \
117 CC_FOR_BUILD=${CC_FOR_BUILD:Q} \ 123 CC_FOR_BUILD=${CC_FOR_BUILD:Q} \
118 CXX_FOR_BUILD=${HOST_CXX:Q} \ 124 CXX_FOR_BUILD=${HOST_CXX:Q} \
119 CFLAGS_FOR_BUILD="-I${TOOLDIR}/include" \ 125 CFLAGS_FOR_BUILD="-I${TOOLDIR}/include" \
120 CC=${CC:Q}' '${CCADDFLAGS:Q} \ 126 CC=${CC:Q}' '${CCADDFLAGS:Q} \
121 CXX=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \ 127 CXX=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \
122 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include' '-I${DESTDIR}/usr/include/g++/bits \ 128 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include' '-I${DESTDIR}/usr/include/g++/bits \
123 CFLAGS= CPPFLAGS= CXXFLAGS= LDFLAGS= \ 129 CFLAGS= CPPFLAGS= CXXFLAGS= LDFLAGS= \
124 AS=${AS:Q} AWK=${TOOL_AWK:Q} LD=${LD:Q} \ 130 AS=${AS:Q} AWK=${TOOL_AWK:Q} LD=${LD:Q} \
125 MSGFMT=${TOOLDIR}/bin/${_TOOL_PREFIX}msgfmt \ 131 MSGFMT=${TOOLDIR}/bin/${_TOOL_PREFIX}msgfmt \
126 NM=${NM:Q} OBJDUMP=${OBJDUMP:Q} \ 132 NM=${NM:Q} OBJDUMP=${OBJDUMP:Q} \
127 XGETTEXT=${TOOLDIR}/bin/${_TOOL_PREFIX}xgettext \ 133 XGETTEXT=${TOOLDIR}/bin/${_TOOL_PREFIX}xgettext \
128 ac_cv_prog_cc_cross=yes \ 134 ac_cv_prog_cc_cross=yes \
129 ac_cv_func_strcoll_works=yes \ 135 ac_cv_func_strcoll_works=yes \
130 ac_cv_func_elf_getshstrndx=no \ 136 ac_cv_func_elf_getshstrndx=no \
131 gcc_cv_func_printf_ptr=yes \ 137 gcc_cv_func_printf_ptr=yes \
132 gcc_cv_libc_provides_ssp=yes \ 138 gcc_cv_libc_provides_ssp=yes \
133 gdb_cv_printf_has_long_double=yes \ 139 gdb_cv_printf_has_long_double=yes \
134 gdb_cv_printf_has_long_long=yes \ 140 gdb_cv_printf_has_long_long=yes \
135 gdb_cv_scanf_has_long_double=yes \ 141 gdb_cv_scanf_has_long_double=yes \
136 gcc_cv_as_sparc_gotdata_op=no 142 gcc_cv_as_sparc_gotdata_op=no
137 143
138CXXADDFLAGS= --sysroot=${DESTDIR} 144CXXADDFLAGS= --sysroot=${DESTDIR}
139CCADDFLAGS= --sysroot=${DESTDIR} -L${DESTDIR}/lib -L${DESTDIR}/usr/lib -B${DESTDIR}/usr/lib/ -I${.OBJDIR}/.native/gcc/include 145CCADDFLAGS= --sysroot=${DESTDIR} -L${DESTDIR}/lib -L${DESTDIR}/usr/lib -B${DESTDIR}/usr/lib/ -I${.OBJDIR}/.native/gcc/include
140 146
141# NEWCONFIGDIR can be set to a read-write location of the source tree 147# NEWCONFIGDIR can be set to a read-write location of the source tree
142# in case the version being used is not. 148# in case the version being used is not.
143NEWCONFIGDIR?= ${.CURDIR}/../.. 149NEWCONFIGDIR?= ${.CURDIR}/../..
144 150
145GCC_MACHINE_ARCH= ${MACHINE_ARCH:S/earmv5/earm/} 151GCC_MACHINE_ARCH= ${MACHINE_ARCH:S/earmv5/earm/}
146 152
147bootstrap-libgcc: .configure_done 153bootstrap-libgcc: .configure_done
148 @echo 'Creating files needed for libgcc by a native bootstrap build.' 154 @echo 'Creating files needed for libgcc by a native bootstrap build.'
149 (cd ${.OBJDIR}/build && ${BUILD_COMMAND} configure-target-libgcc) 155 (cd ${.OBJDIR}/build && ${BUILD_COMMAND} configure-target-libgcc)
150 @MAKE=${BUILD_MAKE:Q} ${HOST_SH} ${MKNATIVE} libgcc-bootstrap \ 156 @MAKE=${BUILD_MAKE:Q} ${HOST_SH} ${MKNATIVE} libgcc-bootstrap \
151 ${.OBJDIR}/build ${NEWCONFIGDIR} ${NETBSDSRCDIR} \ 157 ${.OBJDIR}/build ${NEWCONFIGDIR} ${NETBSDSRCDIR} \
152 ${MACHINE_GNU_PLATFORM} ${GCC_MACHINE_ARCH} ${DESTDIR} ${TOOLDIR} 158 ${MACHINE_GNU_PLATFORM} ${GCC_MACHINE_ARCH} ${DESTDIR} ${TOOLDIR}
153 159
154bootstrap-libstdc++: .configure_done 160bootstrap-libstdc++: .configure_done
155 @echo 'Creating files needed for libstdc++ by a native bootstrap build.' 161 @echo 'Creating files needed for libstdc++ by a native bootstrap build.'
156 (cd ${.OBJDIR}/build && ${BUILD_COMMAND} configure-target-libstdc++-v3) 162 (cd ${.OBJDIR}/build && ${BUILD_COMMAND} configure-target-libstdc++-v3)
157 @MAKE=${BUILD_MAKE:Q} ${HOST_SH} ${MKNATIVE} libstdc++-bootstrap \ 163 @MAKE=${BUILD_MAKE:Q} ${HOST_SH} ${MKNATIVE} libstdc++-bootstrap \
158 ${.OBJDIR}/build ${NEWCONFIGDIR} ${NETBSDSRCDIR} \ 164 ${.OBJDIR}/build ${NEWCONFIGDIR} ${NETBSDSRCDIR} \
159 ${MACHINE_GNU_PLATFORM} ${GCC_MACHINE_ARCH} ${DESTDIR} ${TOOLDIR} 165 ${MACHINE_GNU_PLATFORM} ${GCC_MACHINE_ARCH} ${DESTDIR} ${TOOLDIR}
160 166
161native-gcc: .native/.configure_done 167native-gcc: .native/.configure_done
162 @echo 'Extracting GNU GCC configury for a native toolchain.' 168 @echo 'Extracting GNU GCC configury for a native toolchain.'
163 @MAKE=${BUILD_MAKE:Q} ${HOST_SH} ${MKNATIVE} gcc \ 169 @MAKE=${BUILD_MAKE:Q} ${HOST_SH} ${MKNATIVE} gcc \
164 ${.OBJDIR}/.native ${NEWCONFIGDIR} ${NETBSDSRCDIR} \ 170 ${.OBJDIR}/.native ${NEWCONFIGDIR} ${NETBSDSRCDIR} \
165 ${MACHINE_GNU_PLATFORM} ${GCC_MACHINE_ARCH} ${DESTDIR} ${TOOLDIR} 171 ${MACHINE_GNU_PLATFORM} ${GCC_MACHINE_ARCH} ${DESTDIR} ${TOOLDIR}
166 172
167NATIVE_CONFIGURE_ARGS= ${COMMON_CONFIGURE_ARGS} 173NATIVE_CONFIGURE_ARGS= ${COMMON_CONFIGURE_ARGS}
168MPC= ${NETBSDSRCDIR}/external/lgpl3/mpc 174MPC= ${NETBSDSRCDIR}/external/lgpl3/mpc
169MPFR= ${NETBSDSRCDIR}/external/lgpl3/mpfr 175MPFR= ${NETBSDSRCDIR}/external/lgpl3/mpfr
170GMP= ${NETBSDSRCDIR}/external/lgpl3/gmp 176GMP= ${NETBSDSRCDIR}/external/lgpl3/gmp
171MPCOBJ!= cd ${MPC}/lib/libmpc && ${PRINTOBJDIR} 177MPCOBJ!= cd ${MPC}/lib/libmpc && ${PRINTOBJDIR}
172MPFROBJ!= cd ${MPFR}/lib/libmpfr && ${PRINTOBJDIR} 178MPFROBJ!= cd ${MPFR}/lib/libmpfr && ${PRINTOBJDIR}
173GMPOBJ!= cd ${GMP}/lib/libgmp && ${PRINTOBJDIR} 179GMPOBJ!= cd ${GMP}/lib/libgmp && ${PRINTOBJDIR}
174 180
175.include "../../external/lgpl3/gmp/Makefile.arch" 181.include "../../external/lgpl3/gmp/Makefile.arch"
176 182
177NATIVE_CONFIGURE_ARGS+= \ 183NATIVE_CONFIGURE_ARGS+= \
178 --with-mpc-lib=${MPCOBJ} \ 184 --with-mpc-lib=${MPCOBJ} \
179 --with-mpfr-lib=${MPFROBJ} \ 185 --with-mpfr-lib=${MPFROBJ} \
180 --with-gmp-lib=${GMPOBJ} \ 186 --with-gmp-lib=${GMPOBJ} \
181 --with-mpc-include=${MPC}/dist/src \ 187 --with-mpc-include=${MPC}/dist/src \
182 --with-mpfr-include=${MPFR}/dist/src \ 188 --with-mpfr-include=${MPFR}/dist/src \
183 --with-gmp-include=${GMP}/lib/libgmp/arch/${GMP_MACHINE_ARCH} 189 --with-gmp-include=${GMP}/lib/libgmp/arch/${GMP_MACHINE_ARCH}
184 190
185.if ${MACHINE_ARCH} != "vax" 191.if ${MACHINE_ARCH} != "vax"
186NATIVE_CONFIGURE_ARGS+= --enable-tls 192NATIVE_CONFIGURE_ARGS+= --enable-tls
187.endif 193.endif
188.if !empty(MACHINE_ARCH:Mearm*) 194.if !empty(MACHINE_ARCH:Mearm*)
189NATIVE_CONFIGURE_ARGS+= --enable-initfini-array 195NATIVE_CONFIGURE_ARGS+= --enable-initfini-array
190.endif 196.endif
191 197
192.if ${MACHINE_ARCH} == "m68000" 198.if ${MACHINE_ARCH} == "m68000"
193NATIVE_CONFIGURE_ARGS+= --disable-shared 199NATIVE_CONFIGURE_ARGS+= --disable-shared
194.endif 200.endif
195 201
196.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 202.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
197EXTRA_GCC_TARGETS= i386-builtin-types.inc 203EXTRA_GCC_TARGETS= i386-builtin-types.inc
198.endif 204.endif
199.if !empty(MACHINE_ARCH:M*arm*) 205.if !empty(MACHINE_ARCH:M*arm*)
200EXTRA_GCC_TARGETS= arm-cpu-data.h arm-cpu-cdata.h 206EXTRA_GCC_TARGETS= arm-cpu-data.h arm-cpu-cdata.h
201.endif 207.endif
202 208
203NATIVE_CONFIGURE_ARGS+= \ 209NATIVE_CONFIGURE_ARGS+= \
204 --disable-multilib \ 210 --disable-multilib \
205 --disable-libstdcxx-pch \ 211 --disable-libstdcxx-pch \
206 --build=`${GCCDIST}/config.guess` \ 212 --build=`${GCCDIST}/config.guess` \
207 --host=${MACHINE_GNU_PLATFORM} \ 213 --host=${MACHINE_GNU_PLATFORM} \
208 --with-sysroot=${DESTDIR} 214 --with-sysroot=${DESTDIR}
209MKENV_BUILD_MAKE=cd .native && ${MKNATIVE_ENV} ${BUILD_MAKE} 215MKENV_BUILD_MAKE=cd .native && ${MKNATIVE_ENV} ${BUILD_MAKE}
210 216
211.native/.configure_done: ${_GNU_CFGSRC} ${.CURDIR}/Makefile 217.native/.configure_done: ${_GNU_CFGSRC} ${.CURDIR}/Makefile
212 mkdir .native .native/gcc .native/gcc/include 2>/dev/null || true 218 mkdir .native .native/gcc .native/gcc/include 2>/dev/null || true
213 # If this fails, gthreads won't be configured initially, but reconfig will. 219 # If this fails, gthreads won't be configured initially, but reconfig will.
214 cp ${DESTDIR}/usr/include/g++/bits/gthr-default.h .native/gcc/include || true 220 cp ${DESTDIR}/usr/include/g++/bits/gthr-default.h .native/gcc/include || true
215 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 221 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
216 (cd .native && ${MKNATIVE_ENV} \ 222 (cd .native && ${MKNATIVE_ENV} \
217 ${HOST_SH} ${GNUHOSTDIST}/configure \ 223 ${HOST_SH} ${GNUHOSTDIST}/configure \
218 ${NATIVE_CONFIGURE_ARGS}) && \ 224 ${NATIVE_CONFIGURE_ARGS}) && \
219 (${MKENV_BUILD_MAKE} all-build-libiberty) && \ 225 (${MKENV_BUILD_MAKE} all-build-libiberty) && \
220 ((${MKENV_BUILD_MAKE} all-libcpp) && \ 226 ((${MKENV_BUILD_MAKE} all-libcpp) && \
221 (${MKENV_BUILD_MAKE} all-libbacktrace) && \ 227 (${MKENV_BUILD_MAKE} all-libbacktrace) && \
222 (${MKENV_BUILD_MAKE} all-libdecnumber) || true) 228 (${MKENV_BUILD_MAKE} all-libdecnumber) || true)
223 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 229 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
224 (${MKENV_BUILD_MAKE} configure-gcc configure-libcpp) && \ 230 (${MKENV_BUILD_MAKE} configure-gcc configure-libcpp) && \
225 (${MKENV_BUILD_MAKE} configure-libiberty) && \ 231 (${MKENV_BUILD_MAKE} configure-libiberty) && \
226 (${MKENV_BUILD_MAKE} configure-libdecnumber) 232 (${MKENV_BUILD_MAKE} configure-libdecnumber)
227 # edit Makefile so that maybe-all-gcc does not depend on all-gcc any more. 233 # edit Makefile so that maybe-all-gcc does not depend on all-gcc any more.
228 (cd .native && mv Makefile Makefile.config && \ 234 (cd .native && mv Makefile Makefile.config && \
229 ${TOOL_SED} -e 's/\(maybe-all-gcc:\) all-gcc/\1/' \ 235 ${TOOL_SED} -e 's/\(maybe-all-gcc:\) all-gcc/\1/' \
230 -e 's/\(maybe-all-target-libgcc:\) all-target-libgcc/\1/' \ 236 -e 's/\(maybe-all-target-libgcc:\) all-target-libgcc/\1/' \
231 < Makefile.config > Makefile) 237 < Makefile.config > Makefile)
232 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 238 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
233 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e tree-check.h config.h multilib.h gcov-iov.h) 239 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e tree-check.h config.h multilib.h ${EXTRA_FILES})
234 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 240 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
235 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e libgcc.mvars tconfig.h); \ 241 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e libgcc.mvars tconfig.h); \
236 (cd .native && touch gcc/cc1obj gcc/cc1plus gcc/f771 gcc/libgcc.a gcc/libgcc_s.so) 242 (cd .native && touch gcc/cc1obj gcc/cc1plus gcc/f771 gcc/libgcc.a gcc/libgcc_s.so)
237 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 243 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
238 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e s-omp-device-properties-h) 244 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e s-omp-device-properties-h)
239.if defined(EXTRA_GCC_TARGETS) 245.if defined(EXTRA_GCC_TARGETS)
240 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 246 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
241 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e ${EXTRA_GCC_TARGETS}) 247 (cd .native/gcc && ${MKNATIVE_ENV} ${BUILD_MAKE} -e ${EXTRA_GCC_TARGETS})
242.endif 248.endif
243.for _lib in ${MKNATIVE_CONFIG_TARGET_LIBS} 249.for _lib in ${MKNATIVE_CONFIG_TARGET_LIBS}
244 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 250 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
245 (cd .native && ${MKNATIVE_ENV} ${BUILD_MAKE} \ 251 (cd .native && ${MKNATIVE_ENV} ${BUILD_MAKE} \
246 ${_lib} \ 252 ${_lib} \
247 ALL_GCC_C= ALL_GCC_CXX= \ 253 ALL_GCC_C= ALL_GCC_CXX= \
248 CC_FOR_TARGET=${CC:Q}' '${CCADDFLAGS:Q} \ 254 CC_FOR_TARGET=${CC:Q}' '${CCADDFLAGS:Q} \
249 CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \ 255 CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \
250 RAW_CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \ 256 RAW_CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \
251 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include \ 257 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include \
252 ac_cv_prog_cc_cross=yes) && \ 258 ac_cv_prog_cc_cross=yes) && \
253 true 259 true
254.endfor 260.endfor
255 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \ 261 PATH=${TOOLDIR}/bin:$$PATH; export PATH; \
256 (cd .native/${MACHINE_GNU_PLATFORM}/libstdc++-v3/include && \ 262 (cd .native/${MACHINE_GNU_PLATFORM}/libstdc++-v3/include && \
257 ${MKNATIVE_ENV} ${BUILD_MAKE} \ 263 ${MKNATIVE_ENV} ${BUILD_MAKE} \
258 CC_FOR_TARGET=${CC:Q}' '${CCADDFLAGS:Q} \ 264 CC_FOR_TARGET=${CC:Q}' '${CCADDFLAGS:Q} \
259 CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \ 265 CXX_FOR_TARGET=${CXX:Q}' '${CCADDFLAGS:Q}' '${CXXADDFLAGS:Q} \
260 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include \ 266 CPP=${CPP:Q}' '-I${DESTDIR}/usr/include \
261 all-local) && \ 267 all-local) && \
262 true 268 true
263 @touch $@ 269 @touch $@
264 270
265.if !defined(PREV_GCC) 271.if !defined(PREV_GCC)
266. if exists(PREV_GCC) 272. if exists(PREV_GCC)
267PREV_GCC!= cat PREV_GCC 273PREV_GCC!= cat PREV_GCC
268. else 274. else
269PREV_GCC= 275PREV_GCC=
270. endif 276. endif
271.endif 277.endif
272 278
273CLEANFILES+= PREV_GCC 279CLEANFILES+= PREV_GCC
274 280
275realall realdepend: .MAKE 281realall realdepend: .MAKE
276.if !empty(PREV_GCC) && "${PREV_GCC}" != "${EXTERNAL_GCC_SUBDIR}-${HAVE_GCC}" 282.if !empty(PREV_GCC) && "${PREV_GCC}" != "${EXTERNAL_GCC_SUBDIR}-${HAVE_GCC}"
277 @echo "*** WARNING: GCC has changed version?" 283 @echo "*** WARNING: GCC has changed version?"
278 @echo "*** PREV_GCC '${PREV_GCC}'" 284 @echo "*** PREV_GCC '${PREV_GCC}'"
279 @echo "*** != EXTERNAL_GCC_SUBDIR-HAVE_GCC '${EXTERNAL_GCC_SUBDIR}-${HAVE_GCC}'" 285 @echo "*** != EXTERNAL_GCC_SUBDIR-HAVE_GCC '${EXTERNAL_GCC_SUBDIR}-${HAVE_GCC}'"
280 @echo "*** Cleaning mis-matched tools/gcc" 286 @echo "*** Cleaning mis-matched tools/gcc"
281 rm -f PREV_GCC 287 rm -f PREV_GCC
282 (cd ${.CURDIR} && ${MAKE} cleandir) 288 (cd ${.CURDIR} && ${MAKE} cleandir)
283.endif 289.endif
284 echo ${EXTERNAL_GCC_SUBDIR}-${HAVE_GCC} >PREV_GCC 290 echo ${EXTERNAL_GCC_SUBDIR}-${HAVE_GCC} >PREV_GCC
285 291
286clean: clean.native 292clean: clean.native
287clean.native: 293clean.native:
288 -rm -r -f .native 294 -rm -r -f .native

cvs diff -r1.116 -r1.117 src/tools/gcc/mknative-gcc (switch to unified diff)

--- src/tools/gcc/mknative-gcc 2022/07/22 06:50:26 1.116
+++ src/tools/gcc/mknative-gcc 2023/07/31 01:48:37 1.117
@@ -1,509 +1,506 @@ @@ -1,509 +1,506 @@
1#!/bin/sh 1#!/bin/sh
2# $NetBSD: mknative-gcc,v 1.116 2022/07/22 06:50:26 mrg Exp $ 2# $NetBSD: mknative-gcc,v 1.117 2023/07/31 01:48:37 mrg 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 gcc. 5# platform build of gcc.
6# 6#
7# This version is for GCC 10.3 7# This version is for GCC 10.3
8 8
9# initialise 9# initialise
10 10
11_TMPDIR=$2 11_TMPDIR=$2
12_TOP=$3 12_TOP=$3
13_SRC=$4 13_SRC=$4
14_PLATFORM=$5 14_PLATFORM=$5
15_MACHINE_ARCH=$6 15_MACHINE_ARCH=$6
16_DESTDIR=$7 16_DESTDIR=$7
17_TOOLDIR=$8 17_TOOLDIR=$8
18_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 18_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'`
19_GNU_DIST=`cd ${_VPATH}; pwd` 19_GNU_DIST=`cd ${_VPATH}; pwd`
20 20
21if [ -z "$_DESTDIR" ]; then 21if [ -z "$_DESTDIR" ]; then
22 echo "\$_DESTDIR is empty" 2>&1 22 echo "\$_DESTDIR is empty" 2>&1
23 exit 1 23 exit 1
24fi 24fi
25 25
26. $_TOP/tools/gcc/mknative.common 26. $_TOP/tools/gcc/mknative.common
27 27
28case $0 in 28case $0 in
29 *mknative-gcc.old) 29 *mknative-gcc.old)
30 _OUTDIRBASE="external/gpl3/gcc.old" 30 _OUTDIRBASE="external/gpl3/gcc.old"
31 ;; 31 ;;
32 *) 32 *)
33 _OUTDIRBASE="external/gpl3/gcc" 33 _OUTDIRBASE="external/gpl3/gcc"
34 ;; 34 ;;
35esac 35esac
36_OUTDIR="$_TOP/$_OUTDIRBASE" 36_OUTDIR="$_TOP/$_OUTDIRBASE"
37 37
38sanitise_includes () { 38sanitise_includes () {
39 sed \ 39 sed \
40 -e "s,-I$_DESTDIR/usr/include,,g" \ 40 -e "s,-I$_DESTDIR/usr/include,,g" \
41 -e "s,-I$_SRC/external/lgpl3/mpfr/dist/src,,g" \ 41 -e "s,-I$_SRC/external/lgpl3/mpfr/dist/src,,g" \
42 -e "s,-I$_SRC/external/lgpl3/mpc/dist/src,,g" \ 42 -e "s,-I$_SRC/external/lgpl3/mpc/dist/src,,g" \
43 -e "s,-I$_SRC/external/lgpl3/gmp/lib/libgmp/arch/[a-z_0-9-]*,,g" \ 43 -e "s,-I$_SRC/external/lgpl3/gmp/lib/libgmp/arch/[a-z_0-9-]*,,g" \
44 -e "s,-I$_TOOLDIR/include,,g" \ 44 -e "s,-I$_TOOLDIR/include,,g" \
45 -e "s,-I/usr/include/[^ ]*,," 45 -e "s,-I/usr/include/[^ ]*,,"
46} 46}
47 47
48##### lib/libg2c ##### 48##### lib/libg2c #####
49 49
50get_libg2c () { 50get_libg2c () {
51 mkdir -p $_OUTDIR/lib/libg2c3/arch/$_MACHINE_ARCH 51 mkdir -p $_OUTDIR/lib/libg2c3/arch/$_MACHINE_ARCH
52 52
53 write_c $_OUTDIRBASE/lib/libg2c3/arch/$_MACHINE_ARCH/config.h <$_TMPDIR/$_PLATFORM/libf2c/libU77/config.h 53 write_c $_OUTDIRBASE/lib/libg2c3/arch/$_MACHINE_ARCH/config.h <$_TMPDIR/$_PLATFORM/libf2c/libU77/config.h
54 write_c $_OUTDIRBASE/lib/libg2c3/arch/$_MACHINE_ARCH/g2c.h <$_TMPDIR/$_PLATFORM/libf2c/g2c.h 54 write_c $_OUTDIRBASE/lib/libg2c3/arch/$_MACHINE_ARCH/g2c.h <$_TMPDIR/$_PLATFORM/libf2c/g2c.h
55 55
56 { 56 {
57 getvars $_PLATFORM/libf2c/Makefile \ 57 getvars $_PLATFORM/libf2c/Makefile \
58 F2CEXT 58 F2CEXT
59 getvars $_PLATFORM/libf2c/libF77/Makefile \ 59 getvars $_PLATFORM/libf2c/libF77/Makefile \
60 ALL_CFLAGS OBJS 60 ALL_CFLAGS OBJS
61 getvars $_PLATFORM/libf2c/libI77/Makefile \ 61 getvars $_PLATFORM/libf2c/libI77/Makefile \
62 ALL_CFLAGS OBJS | sed 's,=,+=,' 62 ALL_CFLAGS OBJS | sed 's,=,+=,'
63 getvars $_PLATFORM/libf2c/libU77/Makefile \ 63 getvars $_PLATFORM/libf2c/libU77/Makefile \
64 ALL_CFLAGS OBJS | sed 's,=,+=,' 64 ALL_CFLAGS OBJS | sed 's,=,+=,'
65 } | write_mk $_OUTDIRBASE/lib/libg2c3/arch/$_MACHINE_ARCH/defs.mk 65 } | write_mk $_OUTDIRBASE/lib/libg2c3/arch/$_MACHINE_ARCH/defs.mk
66} 66}
67 67
68##### lib/libgcc ##### 68##### lib/libgcc #####
69 69
70get_libgcc () { 70get_libgcc () {
71 _subdir="$1" 71 _subdir="$1"
72 mkdir -p $_OUTDIR/lib/lib$_subdir/arch 72 mkdir -p $_OUTDIR/lib/lib$_subdir/arch
73 73
74 # DPBIT, FPBIT only used on mn10[23]00, we don't need them. 74 # DPBIT, FPBIT only used on mn10[23]00, we don't need them.
75 # XXX we should probably grab everything Just In Case for 75 # XXX we should probably grab everything Just In Case for
76 # the future. 76 # the future.
77 77
78 mkdir -p $_OUTDIR/lib/lib$_subdir/arch/$_MACHINE_ARCH 78 mkdir -p $_OUTDIR/lib/lib$_subdir/arch/$_MACHINE_ARCH
79 cd $_TMPDIR/$_PLATFORM/libgcc 79 cd $_TMPDIR/$_PLATFORM/libgcc
80 { 80 {
81 getvars $_PLATFORM/libgcc/Makefile \ 81 getvars $_PLATFORM/libgcc/Makefile \
82 INCLUDES \ 82 INCLUDES \
83 INTERNAL_CFLAGS \ 83 INTERNAL_CFLAGS \
84 LIB2ADD LIB2ADDEH LIB2ADD_ST \ 84 LIB2ADD LIB2ADDEH LIB2ADD_ST \
85 LIB1ASMFUNCS LIB1ASMSRC \ 85 LIB1ASMFUNCS LIB1ASMSRC \
86 LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \ 86 LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \
87 LIB2FUNCS_EXTRA \ 87 LIB2FUNCS_EXTRA \
88 LIBGCC2_CFLAGS \ 88 LIBGCC2_CFLAGS \
89 SHLIB_MKMAP SHLIB_MKMAP_OPTS \ 89 SHLIB_MKMAP SHLIB_MKMAP_OPTS \
90 SHLIB_MAPFILES SHLIB_NM_FLAGS 90 SHLIB_MAPFILES SHLIB_NM_FLAGS
91 getvars gcc/Makefile \ 91 getvars gcc/Makefile \
92 NOEXCEPTION_FLAGS EXTRA_HEADERS 92 NOEXCEPTION_FLAGS EXTRA_HEADERS
93 } | sanitise_includes \ 93 } | sanitise_includes \
94 | write_mk $_OUTDIRBASE/lib/lib$_subdir/arch/$_MACHINE_ARCH/defs.mk 94 | write_mk $_OUTDIRBASE/lib/lib$_subdir/arch/$_MACHINE_ARCH/defs.mk
95 95
96 cd $_TMPDIR/$_PLATFORM/libgcc 96 cd $_TMPDIR/$_PLATFORM/libgcc
97 { 97 {
98 getvars $_PLATFORM/libgcc/Makefile \ 98 getvars $_PLATFORM/libgcc/Makefile \
99 enable_execute_stack \ 99 enable_execute_stack \
100 unwind_header md_unwind_header \ 100 unwind_header md_unwind_header \
101 sfp_machine_header thread_header 101 sfp_machine_header thread_header
102 } | sanitise_includes \ 102 } | sanitise_includes \
103 | write_mk $_OUTDIRBASE/lib/lib$_subdir/arch/$_MACHINE_ARCH/gthr-defs.mk 103 | write_mk $_OUTDIRBASE/lib/lib$_subdir/arch/$_MACHINE_ARCH/gthr-defs.mk
104 104
105 if [ "${_MACHINE_ARCH}" = "m68000" ] 105 if [ "${_MACHINE_ARCH}" = "m68000" ]
106 then 106 then
107 ex <<__EOF__ $_OUTDIR/lib/lib$_subdir/arch/$_MACHINE_ARCH/defs.mk 107 ex <<__EOF__ $_OUTDIR/lib/lib$_subdir/arch/$_MACHINE_ARCH/defs.mk
108/G_LIBGCC2_CFLAGS/ s/-fPIC// 108/G_LIBGCC2_CFLAGS/ s/-fPIC//
109wq 109wq
110__EOF__ 110__EOF__
111 fi 111 fi
112 112
113 for f in auto-target.h; do 113 for f in auto-target.h; do
114 write_c $_OUTDIRBASE/lib/lib$_subdir/arch/$_MACHINE_ARCH/$f \ 114 write_c $_OUTDIRBASE/lib/lib$_subdir/arch/$_MACHINE_ARCH/$f \
115 <$_TMPDIR/$_PLATFORM/libgcc/$f 115 <$_TMPDIR/$_PLATFORM/libgcc/$f
116 done 116 done
117} 117}
118 118
119##### lib/libgcov ##### 119##### lib/libgcov #####
120 120
121get_libgcov () { 121get_libgcov () {
122 _subdir="$1" 122 _subdir="$1"
123 _mf="$2" 123 _mf="$2"
124 124
125 mkdir -p $_OUTDIR/lib/lib$_subdir/libgcov/arch/$_MACHINE_ARCH 125 mkdir -p $_OUTDIR/lib/lib$_subdir/libgcov/arch/$_MACHINE_ARCH
126 126
127 { 127 {
128 getvars $_mf \ 128 getvars $_mf \
129 LIBGCOV_MERGE \ 129 LIBGCOV_MERGE \
130 LIBGCOV_PROFILER \ 130 LIBGCOV_PROFILER \
131 LIBGCOV_INTERFACE \ 131 LIBGCOV_INTERFACE \
132 LIBGCOV_DRIVER 132 LIBGCOV_DRIVER
133 } | write_mk $_OUTDIRBASE/lib/lib$_subdir/libgcov/arch/$_MACHINE_ARCH/defs.mk 133 } | write_mk $_OUTDIRBASE/lib/lib$_subdir/libgcov/arch/$_MACHINE_ARCH/defs.mk
134 134
135 write_c $_OUTDIRBASE/lib/lib$_subdir/libgcov/arch/$_MACHINE_ARCH/gcov-iov.h \ 
136 <$_TMPDIR/gcc/gcov-iov.h 
137 
138} 135}
139 136
140##### lib/libiberty ##### 137##### lib/libiberty #####
141 138
142get_gcc_libiberty () { 139get_gcc_libiberty () {
143 _subdir="$1" 140 _subdir="$1"
144 _libibertydir="lib/libiberty" 141 _libibertydir="lib/libiberty"
145 mkdir -p $_OUTDIR/$_libibertydir/arch/$_MACHINE_ARCH 142 mkdir -p $_OUTDIR/$_libibertydir/arch/$_MACHINE_ARCH
146 143
147 getvars libiberty/Makefile \ 144 getvars libiberty/Makefile \
148 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 145 ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
149 | write_mk $_OUTDIRBASE/$_libibertydir/defs.mk 146 | write_mk $_OUTDIRBASE/$_libibertydir/defs.mk
150 147
151 write_c $_OUTDIRBASE/$_libibertydir/arch/$_MACHINE_ARCH/config.h \ 148 write_c $_OUTDIRBASE/$_libibertydir/arch/$_MACHINE_ARCH/config.h \
152 <$_TMPDIR/libiberty/config.h 149 <$_TMPDIR/libiberty/config.h
153} 150}
154 151
155##### lib/libdecnumber ##### 152##### lib/libdecnumber #####
156 153
157get_libdecnumber () { 154get_libdecnumber () {
158 _subdir="$1" 155 _subdir="$1"
159 156
160 mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH 157 mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH
161 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/config.h \ 158 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/config.h \
162 <$_TMPDIR/libdecnumber/config.h 159 <$_TMPDIR/libdecnumber/config.h
163} 160}
164 161
165##### lib/libgomp ##### 162##### lib/libgomp #####
166 163
167get_libgomp () { 164get_libgomp () {
168 _subdir="$1" 165 _subdir="$1"
169 166
170 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH 167 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH
171 168
172 getvars $_PLATFORM/libgomp/Makefile \ 169 getvars $_PLATFORM/libgomp/Makefile \
173 libgomp_la_SOURCES \ 170 libgomp_la_SOURCES \
174 | write_mk $_OUTDIRBASE/lib/$_subdir/defs.mk 171 | write_mk $_OUTDIRBASE/lib/$_subdir/defs.mk
175 172
176 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/config.h \ 173 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/config.h \
177 <$_TMPDIR/$_PLATFORM/libgomp/config.h 174 <$_TMPDIR/$_PLATFORM/libgomp/config.h
178 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/libgomp_f.h \ 175 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/libgomp_f.h \
179 <$_TMPDIR/$_PLATFORM/libgomp/libgomp_f.h 176 <$_TMPDIR/$_PLATFORM/libgomp/libgomp_f.h
180 write_mk $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/libgomp.spec \ 177 write_mk $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/libgomp.spec \
181 <$_TMPDIR/$_PLATFORM/libgomp/libgomp.spec 178 <$_TMPDIR/$_PLATFORM/libgomp/libgomp.spec
182 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/omp.h \ 179 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/omp.h \
183 <$_TMPDIR/$_PLATFORM/libgomp/omp.h 180 <$_TMPDIR/$_PLATFORM/libgomp/omp.h
184} 181}
185 182
186##### lib/libbacktrace ##### 183##### lib/libbacktrace #####
187 184
188get_libbacktrace () { 185get_libbacktrace () {
189 _subdir="$1" 186 _subdir="$1"
190 187
191 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH 188 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH
192 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/config.h \ 189 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/config.h \
193 <$_TMPDIR/$_PLATFORM/$_subdir/config.h 190 <$_TMPDIR/$_PLATFORM/$_subdir/config.h
194 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/backtrace-supported.h \ 191 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/backtrace-supported.h \
195 <$_TMPDIR/$_PLATFORM/$_subdir/backtrace-supported.h 192 <$_TMPDIR/$_PLATFORM/$_subdir/backtrace-supported.h
196} 193}
197 194
198##### lib/libobjc ##### 195##### lib/libobjc #####
199 196
200get_libobjc () { 197get_libobjc () {
201 _subdir="$1/arch/$_MACHINE_ARCH" 198 _subdir="$1/arch/$_MACHINE_ARCH"
202 _options="ALL_OPT_FILES" 199 _options="ALL_OPT_FILES"
203 200
204 mkdir -p $_OUTDIR/lib/$_subdir 201 mkdir -p $_OUTDIR/lib/$_subdir
205 202
206 { 203 {
207 if [ -n "$_options" ]; then 204 if [ -n "$_options" ]; then
208 getvars gcc/Makefile $_options 205 getvars gcc/Makefile $_options
209 fi 206 fi
210 getvars $_PLATFORM/libobjc/Makefile \ 207 getvars $_PLATFORM/libobjc/Makefile \
211 ALL_CFLAGS INCLUDES OBJC_SOURCE_FILES C_SOURCE_FILES OBJC_H \ 208 ALL_CFLAGS INCLUDES OBJC_SOURCE_FILES C_SOURCE_FILES OBJC_H \
212 | sed "s,$_GNU_DIST,\${GNUHOSTDIST},g" 209 | sed "s,$_GNU_DIST,\${GNUHOSTDIST},g"
213 } | sanitise_includes \ 210 } | sanitise_includes \
214 | write_mk $_OUTDIRBASE/lib/$_subdir/defs.mk 211 | write_mk $_OUTDIRBASE/lib/$_subdir/defs.mk
215 212
216 write_c $_OUTDIRBASE/lib/$_subdir/config.h \ 213 write_c $_OUTDIRBASE/lib/$_subdir/config.h \
217 <$_TMPDIR/$_PLATFORM/libobjc/config.h 214 <$_TMPDIR/$_PLATFORM/libobjc/config.h
218} 215}
219 216
220##### lib/libstdc++-v3 ##### 217##### lib/libstdc++-v3 #####
221 218
222get_libstdcxx_v3 () { 219get_libstdcxx_v3 () {
223 _subdir="$1" 220 _subdir="$1"
224 _ver="$2" 221 _ver="$2"
225 222
226 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH 223 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH
227 224
228 _build_headers="c++config.h cxxabi_tweaks.h" 225 _build_headers="c++config.h cxxabi_tweaks.h"
229 _headers1="backward_headers c_base_headers_extra" 226 _headers1="backward_headers c_base_headers_extra"
230 _headers1="$_headers1 c_base_headers_extra_install" 227 _headers1="$_headers1 c_base_headers_extra_install"
231 _headers1="$_headers1 tr1_headers tr2_headers" 228 _headers1="$_headers1 tr1_headers tr2_headers"
232 _headers1="$_headers1 decimal_headers c_compatibility_headers_install" 229 _headers1="$_headers1 decimal_headers c_compatibility_headers_install"
233 _headers1="$_headers1 debug_headers parallel_headers" 230 _headers1="$_headers1 debug_headers parallel_headers"
234 _headers1="$_headers1 pb_headers1 pb_headers2 pb_headers3 pb_headers4" 231 _headers1="$_headers1 pb_headers1 pb_headers2 pb_headers3 pb_headers4"
235 _headers1="$_headers1 pb_headers5 pb_headers6 pb_headers7" 232 _headers1="$_headers1 pb_headers5 pb_headers6 pb_headers7"
236 _headers1="$_headers1 bits_headers ext_headers host_headers" 233 _headers1="$_headers1 bits_headers ext_headers host_headers"
237 _headers1="$_headers1 pstl_headers" 234 _headers1="$_headers1 pstl_headers"
238 _headers1="$_headers1 profile_headers profile_impl_headers" 235 _headers1="$_headers1 profile_headers profile_impl_headers"
239 _headers1="$_headers1 experimental_headers experimental_bits_headers" 236 _headers1="$_headers1 experimental_headers experimental_bits_headers"
240 _headers1="$_headers1 ext_host_headers" 237 _headers1="$_headers1 ext_host_headers"
241 238
242 # build files 239 # build files
243 for h in $_build_headers; do 240 for h in $_build_headers; do
244 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/$h \ 241 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/$h \
245 <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h 242 <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h
246 done 243 done
247 244
248 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/gstdint.h \ 245 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/gstdint.h \
249 <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/gstdint.h 246 <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/gstdint.h
250 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/symver-config.h \ 247 write_c $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/symver-config.h \
251 <$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h 248 <$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h
252 249
253 { 250 {
254 getvars $_PLATFORM/libstdc++-v3/Makefile \ 251 getvars $_PLATFORM/libstdc++-v3/Makefile \
255 port_specific_symbol_files 252 port_specific_symbol_files
256 getvars $_PLATFORM/libstdc++-v3/src/Makefile \ 253 getvars $_PLATFORM/libstdc++-v3/src/Makefile \
257 cxx17_sources \ 254 cxx17_sources \
258 cxx11_sources \ 255 cxx11_sources \
259 cxx98_sources 256 cxx98_sources
260 257
261 # libsupc++ 258 # libsupc++
262 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 259 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \
263 sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/' 260 sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/'
264 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 261 getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \
265 c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/' 262 c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/'
266 263
267 # includes 264 # includes
268 getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 265 getvars $_PLATFORM/libstdc++-v3/include/Makefile \
269 c_base_headers std_headers | sed -e 's#/[^ ][^ ]*/##g' -e 's/\${GNUHOSTDIST}//g' 266 c_base_headers std_headers | sed -e 's#/[^ ][^ ]*/##g' -e 's/\${GNUHOSTDIST}//g'
270 267
271 # src 268 # src
272 getvars $_PLATFORM/libstdc++-v3/src/Makefile \ 269 getvars $_PLATFORM/libstdc++-v3/src/Makefile \
273 libstdc___la_SOURCES | sed 's/^G_libstdc___la_SOURCES=/G_SRC_SOURCES=/' 270 libstdc___la_SOURCES | sed 's/^G_libstdc___la_SOURCES=/G_SRC_SOURCES=/'
274 getvars $_PLATFORM/libstdc++-v3/src/c++17/Makefile \ 271 getvars $_PLATFORM/libstdc++-v3/src/c++17/Makefile \
275 libc__17convenience_la_SOURCES | \ 272 libc__17convenience_la_SOURCES | \
276 sed -e 's/^G_libc__17convenience_la_SOURCES=/G_CPP17_SOURCES=/' 273 sed -e 's/^G_libc__17convenience_la_SOURCES=/G_CPP17_SOURCES=/'
277 getvars $_PLATFORM/libstdc++-v3/src/c++11/Makefile \ 274 getvars $_PLATFORM/libstdc++-v3/src/c++11/Makefile \
278 libc__11convenience_la_SOURCES | \ 275 libc__11convenience_la_SOURCES | \
279 sed -e 's/^G_libc__11convenience_la_SOURCES=/G_CPP11_SOURCES=/' 276 sed -e 's/^G_libc__11convenience_la_SOURCES=/G_CPP11_SOURCES=/'
280 getvars $_PLATFORM/libstdc++-v3/src/c++98/Makefile \ 277 getvars $_PLATFORM/libstdc++-v3/src/c++98/Makefile \
281 GLIBCXX_ABI_FLAGS libc__98convenience_la_SOURCES | \ 278 GLIBCXX_ABI_FLAGS libc__98convenience_la_SOURCES | \
282 sed -e 's/^G_libc__98convenience_la_SOURCES=/G_CPP98_SOURCES=/' 279 sed -e 's/^G_libc__98convenience_la_SOURCES=/G_CPP98_SOURCES=/'
283 getvars $_PLATFORM/libstdc++-v3/src/filesystem/Makefile \ 280 getvars $_PLATFORM/libstdc++-v3/src/filesystem/Makefile \
284 libstdc__fs_la_SOURCES | \ 281 libstdc__fs_la_SOURCES | \
285 sed -e 's/^G_libstdc__fs_la_SOURCES=/G_FILESYSTEM_SOURCES=/' 282 sed -e 's/^G_libstdc__fs_la_SOURCES=/G_FILESYSTEM_SOURCES=/'
286 getvars $_PLATFORM/libstdc++-v3/Makefile ATOMICITY_SRCDIR \ 283 getvars $_PLATFORM/libstdc++-v3/Makefile ATOMICITY_SRCDIR \
287 BASIC_FILE_CC CLOCALE_CC CCODECVT_CC CCOLLATE_CC \ 284 BASIC_FILE_CC CLOCALE_CC CCODECVT_CC CCOLLATE_CC \
288 CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_CC \ 285 CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_CC \
289 CPU_OPT_BITS_RANDOM 286 CPU_OPT_BITS_RANDOM
290 287
291 # includes 288 # includes
292 getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 289 getvars $_PLATFORM/libstdc++-v3/include/Makefile \
293 $_headers1 | \ 290 $_headers1 | \
294 sed -e 's#\${GNUHOSTDIST}/libstdc++-v3/include/##g' \ 291 sed -e 's#\${GNUHOSTDIST}/libstdc++-v3/include/##g' \
295 -e 's#\${GNUHOSTDIST}/libstdc++-v3/config/##g' 292 -e 's#\${GNUHOSTDIST}/libstdc++-v3/config/##g'
296 getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 293 getvars $_PLATFORM/libstdc++-v3/include/Makefile \
297 BASIC_FILE_H ALLOCATOR_H CSTDIO_H CLOCALE_H CMESSAGES_H CTIME_H 294 BASIC_FILE_H ALLOCATOR_H CSTDIO_H CLOCALE_H CMESSAGES_H CTIME_H
298 } | sanitise_includes \ 295 } | sanitise_includes \
299 | write_mk $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/defs.mk 296 | write_mk $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/defs.mk
300} 297}
301 298
302##### lib/libsanitizer ##### 299##### lib/libsanitizer #####
303 300
304get_libsanitizer () { 301get_libsanitizer () {
305 _subdir="$1" 302 _subdir="$1"
306 303
307 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH 304 mkdir -p $_OUTDIR/lib/$_subdir/arch/$_MACHINE_ARCH
308 305
309 { 306 {
310 getvars $_PLATFORM/libsanitizer/asan/Makefile \ 307 getvars $_PLATFORM/libsanitizer/asan/Makefile \
311 asan_files 308 asan_files
312 getvars $_PLATFORM/libsanitizer/lsan/Makefile \ 309 getvars $_PLATFORM/libsanitizer/lsan/Makefile \
313 lsan_files 310 lsan_files
314 getvars $_PLATFORM/libsanitizer/tsan/Makefile \ 311 getvars $_PLATFORM/libsanitizer/tsan/Makefile \
315 tsan_files 312 tsan_files
316 getvars $_PLATFORM/libsanitizer/ubsan/Makefile \ 313 getvars $_PLATFORM/libsanitizer/ubsan/Makefile \
317 ubsan_files 314 ubsan_files
318 getvars $_PLATFORM/libsanitizer/interception/Makefile \ 315 getvars $_PLATFORM/libsanitizer/interception/Makefile \
319 interception_files 316 interception_files
320 317
321 } | sanitise_includes \ 318 } | sanitise_includes \
322 | write_mk $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/defs.mk 319 | write_mk $_OUTDIRBASE/lib/$_subdir/arch/$_MACHINE_ARCH/defs.mk
323} 320}
324 321
325##### usr.bin/gcc* ##### 322##### usr.bin/gcc* #####
326 323
327get_gcc_bootstrap () { 324get_gcc_bootstrap () {
328 _subdir="$1" 325 _subdir="$1"
329 mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH 326 mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH
330 for f in auto-host tm config; do 327 for f in auto-host tm config; do
331 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h 328 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
332 done 329 done
333 # XXXGCC5 don't really want to copy insn-modes as we build 330 # XXXGCC5 don't really want to copy insn-modes as we build
334 # it but libgcc needs to too early yet 331 # it but libgcc needs to too early yet
335 for f in insn-modes; do 332 for f in insn-modes; do
336 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h 333 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
337 done 334 done
338} 335}
339 336
340get_gcc () { 337get_gcc () {
341 _subdir="$1" 338 _subdir="$1"
342 mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH 339 mkdir -p $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH
343 mkdir -p $_OUTDIR/usr.bin/libcpp/arch/$_MACHINE_ARCH 340 mkdir -p $_OUTDIR/usr.bin/libcpp/arch/$_MACHINE_ARCH
344 mkdir -p $_OUTDIR/usr.bin/include/arch 341 mkdir -p $_OUTDIR/usr.bin/include/arch
345 mkdir -p $_OUTDIR/usr.bin/common-target/arch 342 mkdir -p $_OUTDIR/usr.bin/common-target/arch
346 _buildname="BUILD_" 343 _buildname="BUILD_"
347 _libcppsubdir="" 344 _libcppsubdir=""
348 _extravars="TM_H ALL_OPT_FILES" 345 _extravars="TM_H ALL_OPT_FILES"
349 _hconfig_h="" 346 _hconfig_h=""
350 _extravars2="tm_file_list build_xm_include_list" 347 _extravars2="tm_file_list build_xm_include_list"
351 _extravars3="tm_p_include_list" 348 _extravars3="tm_p_include_list"
352 349
353 { 350 {
354 getvars gcc/Makefile \ 351 getvars gcc/Makefile \
355 ${_buildname}EARLY_SUPPORT ${_buildname}ERRORS ${_buildname}PRINT \ 352 ${_buildname}EARLY_SUPPORT ${_buildname}ERRORS ${_buildname}PRINT \
356 ${_buildname}RTL ${_buildname}SUPPORT ${_buildname}VARRAY \ 353 ${_buildname}RTL ${_buildname}SUPPORT ${_buildname}VARRAY \
357 ${_buildname}MD | \ 354 ${_buildname}MD | \
358 sed -e 's#build/errors.o#build-errors.o#g' \ 355 sed -e 's#build/errors.o#build-errors.o#g' \
359 -e 's#build/print-rtl.o#build-print-rtl.o#g' \ 356 -e 's#build/print-rtl.o#build-print-rtl.o#g' \
360 -e 's#build/rtl.o#build-rtl.o#g' \ 357 -e 's#build/rtl.o#build-rtl.o#g' \
361 -e 's#build/varray.o#build-varray.o#g' \ 358 -e 's#build/varray.o#build-varray.o#g' \
362 -e 's#build/ggc-none.o#build-ggc-none.o#g' \ 359 -e 's#build/ggc-none.o#build-ggc-none.o#g' \
363 -e 's#build/##g' 360 -e 's#build/##g'
364 getvars gcc/Makefile \ 361 getvars gcc/Makefile \
365 ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \ 362 ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \
366 GCC_OBJS GCOV_OBJS GCOV_DUMP_OBJS GXX_OBJS GTM_H PROTO_OBJS ${_extravars1} \ 363 GCC_OBJS GCOV_OBJS GCOV_DUMP_OBJS GXX_OBJS GTM_H PROTO_OBJS ${_extravars1} \
367 INCLUDES md_file OBJC_OBJS OBJS out_file version \ 364 INCLUDES md_file OBJC_OBJS OBJS out_file version \
368 BUILD_PREFIX RTL_H RTL_BASE_H TREE_H ${_hconfig_h} BASIC_BLOCK_H GCC_H \ 365 BUILD_PREFIX RTL_H RTL_BASE_H TREE_H ${_hconfig_h} BASIC_BLOCK_H GCC_H \
369 D_TARGET_DEF \ 366 D_TARGET_DEF \
370 GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \ 367 GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \
371 GTFILES GTFILES_LANG_DIR_NAMES HASH_TABLE_H \ 368 GTFILES GTFILES_LANG_DIR_NAMES HASH_TABLE_H \
372 NOEXCEPTION_FLAGS NATIVE_SYSTEM_HEADER_DIR \ 369 NOEXCEPTION_FLAGS NATIVE_SYSTEM_HEADER_DIR \
373 tm_defines host_xm_file host_xm_defines tm_p_file \ 370 tm_defines host_xm_file host_xm_defines tm_p_file \
374 target_cpu_default ${_extravars} ${_extravars2} \ 371 target_cpu_default ${_extravars} ${_extravars2} \
375 lang_specs_files ${_extravars3} \ 372 lang_specs_files ${_extravars3} \
376 common_out_file \ 373 common_out_file \
377 | sanitise_includes 374 | sanitise_includes
378 getvars gcc/Makefile \ 375 getvars gcc/Makefile \
379 LIB2ADDEHDEP | sed 's/unwind.inc//' 376 LIB2ADDEHDEP | sed 's/unwind.inc//'
380 getvars gcc/Makefile \ 377 getvars gcc/Makefile \
381 CXX_OBJS CXX_C_OBJS | sed 's/cp\///g' 378 CXX_OBJS CXX_C_OBJS | sed 's/cp\///g'
382 getvars gcc/Makefile \ 379 getvars gcc/Makefile \
383 F77_OBJS | sed 's/f\///g' 380 F77_OBJS | sed 's/f\///g'
384 getvars libcpp/Makefile \ 381 getvars libcpp/Makefile \
385 libcpp_a_OBJS 382 libcpp_a_OBJS
386 getvars gcc/Makefile \ 383 getvars gcc/Makefile \
387 ENABLE_SHARED 384 ENABLE_SHARED
388 echo G_SHLIB_LINK="$CC -shared" 385 echo G_SHLIB_LINK="$CC -shared"
389 echo G_SHLIB_MULTILIB=. 386 echo G_SHLIB_MULTILIB=.
390 } | write_mk $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/defs.mk 387 } | write_mk $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/defs.mk
391 388
392 getvars gcc/Makefile \ 389 getvars gcc/Makefile \
393 EXTRA_HEADERS \ 390 EXTRA_HEADERS \
394 | write_mk $_OUTDIRBASE/usr.bin/include/arch/$_MACHINE_ARCH.mk 391 | write_mk $_OUTDIRBASE/usr.bin/include/arch/$_MACHINE_ARCH.mk
395 392
396 getvars gcc/Makefile \ 393 getvars gcc/Makefile \
397 OBJS-libcommon \ 394 OBJS-libcommon \
398 | write_mk $_OUTDIRBASE/usr.bin/common/defs.mk 395 | write_mk $_OUTDIRBASE/usr.bin/common/defs.mk
399 getvars gcc/Makefile \ 396 getvars gcc/Makefile \
400 OBJS-libcommon-target \ 397 OBJS-libcommon-target \
401 | write_mk $_OUTDIRBASE/usr.bin/common-target/arch/$_MACHINE_ARCH.mk 398 | write_mk $_OUTDIRBASE/usr.bin/common-target/arch/$_MACHINE_ARCH.mk
402 399
403 write_c $_OUTDIRBASE/usr.bin/libcpp/arch/$_MACHINE_ARCH/config.h <$_TMPDIR/libcpp/config.h 400 write_c $_OUTDIRBASE/usr.bin/libcpp/arch/$_MACHINE_ARCH/config.h <$_TMPDIR/libcpp/config.h
404 hfiles='auto-host configargs config bconfig bversion plugin-version multilib tm omp-device-properties' 401 hfiles='auto-host configargs config bconfig bversion plugin-version multilib tm omp-device-properties'
405 for f in $hfiles; do 402 for f in $hfiles; do
406 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h 403 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
407 if [ "${_MACHINE_ARCH}" = "powerpc" -a "${f}" = "configargs" ] 404 if [ "${_MACHINE_ARCH}" = "powerpc" -a "${f}" = "configargs" ]
408 then 405 then
409 ex <<__EOF__ $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h 406 ex <<__EOF__ $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h
410/configuration_arguments/ s/$// 407/configuration_arguments/ s/$//
411ya 408ya
412i 409i
413#ifdef _SOFT_FLOAT 410#ifdef _SOFT_FLOAT
414. 411.
415pu 412pu
416s/";$/ -with-float=soft";/ 413s/";$/ -with-float=soft";/
417a 414a
418#else 415#else
419#endif 416#endif
420. 417.
421. m +1 418. m +1
422/configure_default_options/ s/{ NULL.*$// 419/configure_default_options/ s/{ NULL.*$//
423a 420a
424#ifdef _SOFT_FLOAT 421#ifdef _SOFT_FLOAT
425 { "float", "soft" }, 422 { "float", "soft" },
426#endif 423#endif
427 { NULL, NULL } 424 { NULL, NULL }
428}; 425};
429. 426.
430wq 427wq
431__EOF__ 428__EOF__
432 fi 429 fi
433 if [ "${f}" = "configargs" ] 430 if [ "${f}" = "configargs" ]
434 then 431 then
435 _srcquoted=$(echo "$_SRC" | sed 's/\//\\\//g') 432 _srcquoted=$(echo "$_SRC" | sed 's/\//\\\//g')
436 sed -i -E -e "s,$_srcquoted,/usr/src,g" \ 433 sed -i -E -e "s,$_srcquoted,/usr/src,g" \
437 -e 's/--build=[^ ]+ --host=([^ ]+)/--build=\1 --host=\1/' \ 434 -e 's/--build=[^ ]+ --host=([^ ]+)/--build=\1 --host=\1/' \
438 $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h 435 $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f.h
439 fi 436 fi
440 done 437 done
441 438
442 # keep identical 439 # keep identical
443 for f in all-tree.def; do 440 for f in all-tree.def; do
444 cp $_TMPDIR/gcc/$f $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f 441 cp $_TMPDIR/gcc/$f $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f
445 done 442 done
446 443
447 # special transforms 444 # special transforms
448 for f in gtyp-input.list; do 445 for f in gtyp-input.list; do
449 sed -e "s@^.*$_OUTDIRBASE/dist@SRCDIR@" < $_TMPDIR/gcc/$f > $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f 446 sed -e "s@^.*$_OUTDIRBASE/dist@SRCDIR@" < $_TMPDIR/gcc/$f > $_OUTDIR/usr.bin/$_subdir/arch/$_MACHINE_ARCH/$f
450 done 447 done
451 448
452 # special platforms 449 # special platforms
453 if [ "${_MACHINE_ARCH}" = "sh3el" -o "${_MACHINE_ARCH}" = "sh3eb" ]; then 450 if [ "${_MACHINE_ARCH}" = "sh3el" -o "${_MACHINE_ARCH}" = "sh3eb" ]; then
454 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/sysroot-suffix.h <$_TMPDIR/gcc/sysroot-suffix.h 451 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/sysroot-suffix.h <$_TMPDIR/gcc/sysroot-suffix.h
455 fi 452 fi
456 453
457 if [ "${_MACHINE_ARCH}" = "i386" -o "${_MACHINE_ARCH}" = "x86_64" ]; then 454 if [ "${_MACHINE_ARCH}" = "i386" -o "${_MACHINE_ARCH}" = "x86_64" ]; then
458 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/i386-builtin-types.inc <$_TMPDIR/gcc/i386-builtin-types.inc 455 write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$_MACHINE_ARCH/i386-builtin-types.inc <$_TMPDIR/gcc/i386-builtin-types.inc
459 fi 456 fi
460 457
461 case "${_MACHINE_ARCH}" in 458 case "${_MACHINE_ARCH}" in
462 (*arm*) 459 (*arm*)
463 d=$_OUTDIRBASE/usr.bin/$_subdir/arch/${_MACHINE_ARCH} 460 d=$_OUTDIRBASE/usr.bin/$_subdir/arch/${_MACHINE_ARCH}
464 for f in arm-cpu.h arm-cpu-cdata.h arm-cpu-data.h arm-isa.h; do 461 for f in arm-cpu.h arm-cpu-cdata.h arm-cpu-data.h arm-isa.h; do
465 write_c $d/$f <$_TMPDIR/gcc/$f 462 write_c $d/$f <$_TMPDIR/gcc/$f
466 done 463 done
467 ;; 464 ;;
468 esac 465 esac
469} 466}
470 467
471##### main ##### 468##### main #####
472 469
473case "$1" in 470case "$1" in
474# .mk and .h files for libgcc bootstrap (from host build) 471# .mk and .h files for libgcc bootstrap (from host build)
475 472
476libgcc*-bootstrap) 473libgcc*-bootstrap)
477 get_libgcc gcc 474 get_libgcc gcc
478 get_libgcov gcc $_PLATFORM/libgcc/Makefile 475 get_libgcov gcc $_PLATFORM/libgcc/Makefile
479 get_gcc_bootstrap gcc 476 get_gcc_bootstrap gcc
480 exit 0 477 exit 0
481 ;; 478 ;;
482 479
483libstdc++-bootstrap) 480libstdc++-bootstrap)
484 get_libstdcxx_v3 libstdc++-v3 gcc 481 get_libstdcxx_v3 libstdc++-v3 gcc
485 exit 0 482 exit 0
486 ;; 483 ;;
487 484
488gcc*) 485gcc*)
489 get_gcc gcc 486 get_gcc gcc
490 get_libgcc gcc 487 get_libgcc gcc
491 get_libgcov gcc $_PLATFORM/libgcc/Makefile 488 get_libgcov gcc $_PLATFORM/libgcc/Makefile
492 get_gcc_bootstrap gcc 489 get_gcc_bootstrap gcc
493 get_gcc_libiberty gcc 490 get_gcc_libiberty gcc
494 get_libobjc libobjc 491 get_libobjc libobjc
495 get_libstdcxx_v3 libstdc++-v3 gcc 492 get_libstdcxx_v3 libstdc++-v3 gcc
496 # wants libstdc++-v3 built 493 # wants libstdc++-v3 built
497 # get_libsanitizer libsanitizer 494 # get_libsanitizer libsanitizer
498 get_libdecnumber libdecnumber 495 get_libdecnumber libdecnumber
499 get_libgomp libgomp 496 get_libgomp libgomp
500 get_libbacktrace libbacktrace 497 get_libbacktrace libbacktrace
501 exit 0 498 exit 0
502 ;; 499 ;;
503 500
504 501
505*) 502*)
506 echo invalid arguments; 503 echo invalid arguments;
507 exit 1 504 exit 1
508 ;; 505 ;;
509esac 506esac