Module Name:    src
Committed By:   mrg
Date:           Sat Feb  3 19:27:15 UTC 2018

Modified Files:
        src/external/gpl3/gcc/dist/gcc/config: netbsd.h
        src/external/gpl3/gcc/dist/libgcc/config/i386: t-cpuinfo
        src/external/gpl3/gcc/dist/libobjc: encoding.c
        src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98: compatibility.cc
        src/external/gpl3/gcc/lib: Makefile.hacks
        src/external/gpl3/gcc/lib/libgomp: Makefile
        src/external/gpl3/gcc/lib/libstdc++-v3: Makefile

Log Message:
updates for GCC 6.4.0:

- we install version specific headers into gcc-6.
- add missing include path for i386/cpuinfo.c.
- fix compile time warnings in libobjc/encoding.c
- adjust c++98/compatibility.cc to use a visible header
- Makefile.hacks gains a hack for x86 and insn-constants.h.  (should
  try to figure out how to build this earlier.)
- libgomp missing priority_queue.c (switch to mknative pulling it out?).
- build a libstdc++ version file and use it.
- fix the handling of -std= to default the same as normal builds.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/external/gpl3/gcc/dist/gcc/config/netbsd.h
cvs rdiff -u -r1.1.1.1 -r1.2 \
    src/external/gpl3/gcc/dist/libgcc/config/i386/t-cpuinfo
cvs rdiff -u -r1.7 -r1.8 src/external/gpl3/gcc/dist/libobjc/encoding.c
cvs rdiff -u -r1.1.1.3 -r1.2 \
    src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/compatibility.cc
cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/gcc/lib/Makefile.hacks
cvs rdiff -u -r1.17 -r1.18 src/external/gpl3/gcc/lib/libgomp/Makefile
cvs rdiff -u -r1.28 -r1.29 src/external/gpl3/gcc/lib/libstdc++-v3/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/dist/gcc/config/netbsd.h
diff -u src/external/gpl3/gcc/dist/gcc/config/netbsd.h:1.21 src/external/gpl3/gcc/dist/gcc/config/netbsd.h:1.22
--- src/external/gpl3/gcc/dist/gcc/config/netbsd.h:1.21	Fri Feb  2 03:41:04 2018
+++ src/external/gpl3/gcc/dist/gcc/config/netbsd.h	Sat Feb  3 19:27:15 2018
@@ -63,7 +63,7 @@ along with GCC; see the file COPYING3.  
  * XXX figure out a better way to do this
  */
 #undef GCC_INCLUDE_DIR
-#define GCC_INCLUDE_DIR "/usr/include/gcc-5"
+#define GCC_INCLUDE_DIR "/usr/include/gcc-6"
 
 /* Under NetBSD, the normal location of the various *crt*.o files is the
    /usr/lib directory.  */

Index: src/external/gpl3/gcc/dist/libgcc/config/i386/t-cpuinfo
diff -u src/external/gpl3/gcc/dist/libgcc/config/i386/t-cpuinfo:1.1.1.1 src/external/gpl3/gcc/dist/libgcc/config/i386/t-cpuinfo:1.2
--- src/external/gpl3/gcc/dist/libgcc/config/i386/t-cpuinfo:1.1.1.1	Sat Mar  1 08:41:47 2014
+++ src/external/gpl3/gcc/dist/libgcc/config/i386/t-cpuinfo	Sat Feb  3 19:27:15 2018
@@ -1 +1,3 @@
 LIB2ADD += $(srcdir)/config/i386/cpuinfo.c
+LIBGCC2_INCLUDES = -I$(srcdir)/../gcc/config/i386
+

Index: src/external/gpl3/gcc/dist/libobjc/encoding.c
diff -u src/external/gpl3/gcc/dist/libobjc/encoding.c:1.7 src/external/gpl3/gcc/dist/libobjc/encoding.c:1.8
--- src/external/gpl3/gcc/dist/libobjc/encoding.c:1.7	Fri Feb  2 03:41:10 2018
+++ src/external/gpl3/gcc/dist/libobjc/encoding.c	Sat Feb  3 19:27:15 2018
@@ -1108,7 +1108,10 @@ objc_layout_structure_next_member (struc
 
   /* The following are used only if the field is a bitfield */
   register const char *bfld_type = 0;
-  register int bfld_type_align = 0, bfld_field_size = 0;
+#ifdef HAVE_BITFIELD_TYPE_MATTERS
+  register int bfld_type_align = 0;
+#endif
+  register int bfld_field_size = 0;
 
   /* The current type without the type qualifiers */
   const char *type;
@@ -1131,7 +1134,9 @@ objc_layout_structure_next_member (struc
              bfld_type++)
           /* do nothing */;
 
+#ifdef HAVE_BITFIELD_TYPE_MATTERS
 	bfld_type_align = objc_alignof_type (bfld_type) * __CHAR_BIT__;
+#endif
         bfld_field_size = atoi (objc_skip_typespec (bfld_type));
         layout->record_size += bfld_field_size;
       }
@@ -1156,7 +1161,9 @@ objc_layout_structure_next_member (struc
            bfld_type++)
         /* do nothing */;
 
+#ifdef HAVE_BITFIELD_TYPE_MATTERS
       bfld_type_align = objc_alignof_type (bfld_type) * __CHAR_BIT__;
+#endif
       bfld_field_size = atoi (objc_skip_typespec (bfld_type));
     }
 

Index: src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/compatibility.cc
diff -u src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/compatibility.cc:1.1.1.3 src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/compatibility.cc:1.2
--- src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/compatibility.cc:1.1.1.3	Fri Feb  2 01:58:49 2018
+++ src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/compatibility.cc	Sat Feb  3 19:27:15 2018
@@ -381,11 +381,11 @@ _GLIBCXX_END_NAMESPACE_VERSION
    asm (".symver " #cur "," #old "@@" #version);
 
 #define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_SYMVER
-#include <bits/compatibility.h>
+#include <abi/compatibility.h>
 #undef _GLIBCXX_APPLY_SYMVER
 
 #define _GLIBCXX_APPLY_SYMVER _GLIBCXX_3_4_5_SYMVER
-#include <bits/compatibility.h>
+#include <abi/compatibility.h>
 #undef _GLIBCXX_APPLY_SYMVER
 
 

Index: src/external/gpl3/gcc/lib/Makefile.hacks
diff -u src/external/gpl3/gcc/lib/Makefile.hacks:1.5 src/external/gpl3/gcc/lib/Makefile.hacks:1.6
--- src/external/gpl3/gcc/lib/Makefile.hacks:1.5	Thu Mar 17 08:02:38 2016
+++ src/external/gpl3/gcc/lib/Makefile.hacks	Sat Feb  3 19:27:15 2018
@@ -1,11 +1,16 @@
-#	$NetBSD: Makefile.hacks,v 1.5 2016/03/17 08:02:38 mrg Exp $
+#	$NetBSD: Makefile.hacks,v 1.6 2018/02/03 19:27:15 mrg Exp $
 
 # some random crap we need in a few places
 
-.if ${MACHINE_CPU} == "mips"
+.if ${MACHINE_CPU} == "mips" || ${MACHINE} == "amd64" || ${MACHINE} == "i386"
 insn-constants.h:
 	${_MKTARGET_CREATE}
+.if ${MACHINE_CPU} == "mips"
 	echo "enum processor { on, off };" > ${.TARGET}
+.endif
+.if ${MACHINE} == "amd64" || ${MACHINE} == "i386"
+	echo "#define FIRST_PSEUDO_REG 81" > ${.TARGET}
+.endif
 DPSRCS+=	insn-constants.h
 CLEANFILES+=	insn-constants.h
 .else

Index: src/external/gpl3/gcc/lib/libgomp/Makefile
diff -u src/external/gpl3/gcc/lib/libgomp/Makefile:1.17 src/external/gpl3/gcc/lib/libgomp/Makefile:1.18
--- src/external/gpl3/gcc/lib/libgomp/Makefile:1.17	Fri Feb  2 20:57:53 2018
+++ src/external/gpl3/gcc/lib/libgomp/Makefile	Sat Feb  3 19:27:15 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.17 2018/02/02 20:57:53 mrg Exp $
+#	$NetBSD: Makefile,v 1.18 2018/02/03 19:27:15 mrg Exp $
 
 # build GCC's libgomp, so that -fopenmp works.
 
@@ -47,7 +47,8 @@ SRCS= \
 	oacc-mem.c \
 	oacc-async.c \
 	oacc-plugin.c \
-	oacc-cuda.c
+	oacc-cuda.c \
+	priority_queue.c
 
 
 GOMP_MACHINE_ARCH?=	${MACHINE_ARCH:S/earmv5/earm/}

Index: src/external/gpl3/gcc/lib/libstdc++-v3/Makefile
diff -u src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.28 src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.29
--- src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.28	Mon Nov 13 07:21:20 2017
+++ src/external/gpl3/gcc/lib/libstdc++-v3/Makefile	Sat Feb  3 19:27:15 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.28 2017/11/13 07:21:20 mrg Exp $
+#	$NetBSD: Makefile,v 1.29 2018/02/03 19:27:15 mrg Exp $
 
 REQUIRETOOLS=	yes
 NOLINT=		# defined
@@ -18,6 +18,20 @@ LIBDPLIBS+=	m ${.CURDIR}/../../../../../
 COPTS.random.cc+=	${${ACTIVE_CC} == "clang":? -mrdrnd :}
 .endif
 
+.if ${MKPIC} != "no"
+libstdc++-symbols.ver:
+	cat ${DIST}/libstdc++-v3/config/abi/pre/gnu.ver ${G_port_specific_symbol_files} | \
+	${TOOL_GREP} -E -v '^[     ]*#(#| |$)' | \
+	${CXX} -I${DESTDIR}/usr/include/g++ -E -P -include ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/c++config.h - > \
+	${.TARGET}.tmp && mv ${.TARGET}.tmp ${.TARGET} && rm -f ${.TARGET}.tmp
+
+libstdc++_pic.a:: libstdc++-symbols.ver
+
+LDFLAGS+=	-Wl,-O1 \
+		-Wl,--gc-sections \
+		-Wl,--version-script=libstdc++-symbols.ver
+.endif
+
 CXXFLAGS.clang+=	-stdlib=libstdc++ -std=c++11 -D_GLIBCXX_ABI_TAG_CXX11=
 CXXFLAGS+=	${CXXFLAGS.${ACTIVE_CC}}
 CWARNFLAGS.clang+=	-Wno-logical-op-parentheses \
@@ -77,6 +91,7 @@ CPPFLAGS.concept-inst.cc += -D_GLIBCXX_C
 CPPFLAGS.parallel_list.cc += -D_GLIBCXX_PARALLEL
 CPPFLAGS.parallel_settings.cc += -D_GLIBCXX_PARALLEL
 CPPFLAGS.compatibility-parallel_list.cc += -D_GLIBCXX_PARALLEL
+CPPFLAGS.compatibility.cc+=	-I${DIST}/libstdc++-v3/config
 
 cp-demangle.d cp-demangle.o: cp-demangle.h
 
@@ -108,7 +123,7 @@ BUILDSYMLINKS+=	\
 	${GLIBCXX_SRCDIR}/${G_CMONEY_CC} monetary_members_cow.cc \
 	${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} numeric_members_cow.cc
 
-# XXX both c++98 and c++11 have codecvt.cc files.
+# both c++98 and c++11 have codecvt.cc files.
 BUILDSYMLINKS+=	\
 	${GLIBCXX_SRCDIR}/src/c++98/codecvt.cc c98-codecvt.cc
 BUILDSYMLINKS+=	\
@@ -128,18 +143,30 @@ DPSRCS+=       ${_dst}
 .endif
 .endif
 
-# XXX Make this either/or,  not one, and maybe another
+# XXX Make this either/or, not one, and maybe another
+CXX11_ALWAYS=	localename.cc \
+		locale_init.cc \
+		compatibility-c++0x.cc \
+		compatibility-atomic-c++0x.cc \
+		compatibility-thread-c++0x.cc \
+		compatibility-chrono.cc \
+		compatibility-condvar.cc
 .for _s in ${SRCS:M*.cc}
-COPTS.${_s}+= -std=gnu++11
-.endfor
-.for _s in ${G_CPP98_SOURCES:Nlocalename.cc:Nlocale_init.cc:M*.cc}
+. if empty(COPTS.${_s}:M-std=*)
 COPTS.${_s}+= -std=gnu++98
+. endif
+.endfor
+.for _s in ${G_CPP11_SOURCES:M*.cc} ${CXX11_ALWAYS}
+# XXX error: 'template<class> class std::auto_ptr' is deprecated
+COPTS.${_s}+= -std=gnu++11 -Wno-error
 .endfor
 
 COPTS.del_ops.cc += -Wno-c++14-compat
 COPTS.del_opvs.cc += -Wno-c++14-compat
 COPTS.cp-demangle.c += -Wno-unused-function
 
+COPTS.ext-inst.cc+= -Wno-error
+
 .for f in collate_members_cow \
 	  messages_members_cow \
           monetary_members_cow \
@@ -160,6 +187,7 @@ COPTS.${f}.cc+= -fimplicit-templates ${G
 	${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}
 
 ${OBJS}: ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk
+
 .else
 .include <bsd.prog.mk> # do nothing
 .endif

Reply via email to