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