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