- gcc.old == gcc-5.3, so copy mknative-gcc{,.old} and adjust

- disable dual libstdc++ abi per joerg
  (https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html)
  will require a major libstdc++ major bump.
This commit is contained in:
christos 2017-10-04 21:29:43 +00:00
parent 15e2febe9d
commit d8288c95fa
2 changed files with 28 additions and 23 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.82 2017/08/22 09:17:50 mrg Exp $
# $NetBSD: Makefile,v 1.83 2017/10/04 21:29:43 christos Exp $
.include <bsd.own.mk>
@ -8,7 +8,7 @@ MODULE= gcc4
GCCDIST= ${.CURDIR}/../../external/gpl3/${EXTERNAL_GCC_SUBDIR}/dist
GNUHOSTDIST= ${GCCDIST}
.if ${HAVE_GCC} == 48
.if ${HAVE_GCC} == 53
MKNATIVE= ${.CURDIR}/mknative-gcc.old
.endif
@ -35,6 +35,7 @@ COMMON_CONFIGURE_ARGS= --target=${MACHINE_GNU_PLATFORM} \
--with-bugurl=http://www.NetBSD.org/Misc/send-pr.html \
--with-pkgversion="NetBSD ${NETBSD_GCC_VERSION}" \
--with-system-zlib \
--disable-libstdcxx-dual-abi \
--enable-__cxa_atexit \
--enable-libstdcxx-time=rt \
--enable-libstdcxx-threads
@ -190,6 +191,7 @@ NATIVE_CONFIGURE_ARGS+= \
--disable-multilib \
--disable-symvers \
--disable-libstdcxx-pch \
--disable-libstdcxx-dual-abi \
--build=`${GCCDIST}/config.guess` \
--host=${MACHINE_GNU_PLATFORM} \
--with-sysroot=${DESTDIR}

View File

@ -1,10 +1,10 @@
#!/bin/sh
# $NetBSD: mknative-gcc.old,v 1.3 2016/04/21 07:22:15 mrg Exp $
# $NetBSD: mknative-gcc.old,v 1.4 2017/10/04 21:29:43 christos Exp $
#
# Shell script for generating all the constants needed for a native
# platform build of gcc.
#
# This version is for GCC 4.8.
# This version is for GCC 5.3
# initialise
@ -37,19 +37,6 @@ sanitise_includes () {
-e "s,-I/usr/include/[^ ]*,,"
}
##### lib/crtstuff #####
get_crtstuff () {
_subdir="$1"
mkdir -p $_OUTDIR/lib/$_subdir/arch
getvars gcc/Makefile \
INCLUDES CRTSTUFF_CFLAGS CRTSTUFF_T_CFLAGS CRTSTUFF_T_CFLAGS_S \
tm_defines xm_file xm_defines \
| sanitise_includes \
| write_mk $_OUTDIRBASE/lib/$_subdir/arch/$MACHINE_ARCH.mk
}
##### lib/libg2c #####
get_libg2c () {
@ -121,7 +108,10 @@ get_libgcov () {
{
getvars $_mf \
LIBGCOV
LIBGCOV_MERGE \
LIBGCOV_PROFILER \
LIBGCOV_INTERFACE \
LIBGCOV_DRIVER
} | write_mk $_OUTDIRBASE/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH/defs.mk
write_c $_OUTDIRBASE/lib/lib$_subdir/libgcov/arch/$MACHINE_ARCH/gcov-iov.h \
@ -245,9 +235,13 @@ get_libstdcxx_v3 () {
getvars $_PLATFORM/libstdc++-v3/src/Makefile \
libstdc___la_SOURCES | sed 's/^G_libstdc___la_SOURCES=/G_SRC_SOURCES=/'
getvars $_PLATFORM/libstdc++-v3/src/c++11/Makefile \
libc__11convenience_la_SOURCES | sed 's/^G_libc__11convenience_la_SOURCES=/G_CPP11_SOURCES=/'
libc__11convenience_la_SOURCES | \
sed -e 's/^G_libc__11convenience_la_SOURCES=/G_CPP11_SOURCES=/' \
-e 's/codecvt.cc/c11-codecvt.cc/'
getvars $_PLATFORM/libstdc++-v3/src/c++98/Makefile \
libc__98convenience_la_SOURCES | sed 's/^G_libc__98convenience_la_SOURCES=/G_CPP98_SOURCES=/'
GLIBCXX_ABI_FLAGS libc__98convenience_la_SOURCES | \
sed -e 's/^G_libc__98convenience_la_SOURCES=/G_CPP98_SOURCES=/' \
-e 's/codecvt.cc/c98-codecvt.cc/'
getvars $_PLATFORM/libstdc++-v3/Makefile ATOMICITY_SRCDIR \
BASIC_FILE_CC CLOCALE_CC CCODECVT_CC CCOLLATE_CC \
CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_CC \
@ -277,6 +271,11 @@ get_gcc_bootstrap () {
for f in auto-host tm config; do
write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
done
# XXXGCC5 don't really want to copy insn-modes as we build
# it but libgcc needs to too early yet
for f in insn-modes; do
write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
done
}
get_gcc () {
@ -307,6 +306,7 @@ get_gcc () {
GCC_OBJS GCOV_OBJS GXX_OBJS GTM_H PROTO_OBJS ${_extravars1} \
INCLUDES md_file OBJC_OBJS OBJS out_file version \
BUILD_PREFIX RTL_H RTL_BASE_H TREE_H ${_hconfig_h} BASIC_BLOCK_H GCC_H \
GGC_H \
GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \
GTFILES GTFILES_LANG_DIR_NAMES NOEXCEPTION_FLAGS \
NATIVE_SYSTEM_HEADER_DIR \
@ -380,13 +380,17 @@ __EOF__
# special transforms
for f in gtyp-input.list; do
sed -e 's/^.*external\/gpl3\/gcc\.old\/dist/SRCDIR/' < $_TMPDIR/gcc/$f > $_OUTDIR/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f
sed -e 's/^.*external\/gpl3\/gcc\/dist/SRCDIR/' < $_TMPDIR/gcc/$f > $_OUTDIR/usr.bin/$_subdir/arch/$MACHINE_ARCH/$f
done
# special platforms
if [ "${MACHINE_ARCH}" = "sh3el" -o "${MACHINE_ARCH}" = "sh3eb" ]; then
write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$MACHINE_ARCH/sysroot-suffix.h <$_TMPDIR/gcc/sysroot-suffix.h
fi
if [ "${MACHINE_ARCH}" = "i386" -o "${MACHINE_ARCH}" = "x86_64" ]; then
write_c $_OUTDIRBASE/usr.bin/$_subdir/arch/$MACHINE_ARCH/i386-builtin-types.inc <$_TMPDIR/gcc/i386-builtin-types.inc
fi
}
##### main #####
@ -397,7 +401,6 @@ case "$1" in
libgcc*-bootstrap)
get_libgcc gcc
get_libgcov gcc $_PLATFORM/libgcc/Makefile
get_crtstuff crtstuff
get_gcc_bootstrap gcc
exit 0
;;
@ -411,7 +414,7 @@ gcc*)
get_gcc gcc
get_libgcc gcc
get_libgcov gcc $_PLATFORM/libgcc/Makefile
get_crtstuff crtstuff
get_gcc_bootstrap gcc
get_gcc_libiberty gcc
get_libobjc libobjc
get_libstdcxx_v3 libstdc++-v3 gcc