Bug 210997 - sys/dev/drm2/i915/i915_drv.h under amd64-gcc: error: redundant redeclarations of 'i915_gem_dump_object' and 'intel_fbc_enabled'
Summary: sys/dev/drm2/i915/i915_drv.h under amd64-gcc: error: redundant redeclarations...
Status: Closed DUPLICATE of bug 209924
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.0-BETA1
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-07-11 06:44 UTC by Mark Millard
Modified: 2016-07-11 10:21 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Millard 2016-07-11 06:44:20 UTC
When I attempted an amd64-gcc variant build of my normal clang based amd64 build the following pair of errors resulted during buildkernel:

--- all_subdir_drm2/i915kms ---
In file included from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_drv.h:31:0,
                 from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/dvo.h:35,
                 from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/dvo_ivch.c:31:
/usr/src/sys/dev/drm2/i915/i915_drv.h:1621:6: error: redundant redeclaration of 'i915_gem_dump_object' [-Werror=redundant-decls]
 void i915_gem_dump_object(struct drm_i915_gem_object *obj, int len,
      ^
/usr/src/sys/dev/drm2/i915/i915_drv.h:1612:6: note: previous declaration of 'i915_gem_dump_object' was here
 void i915_gem_dump_object(struct drm_i915_gem_object *obj, int len,
      ^
In file included from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/dvo.h:35:0,
                 from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/dvo_ivch.c:31:
/usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_drv.h:671:13: error: redundant redeclaration of 'intel_fbc_enabled' [-Werror=redundant-decls]
 extern bool intel_fbc_enabled(struct drm_device *dev);
             ^
In file included from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/intel_drv.h:31:0,
                 from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/dvo.h:35,
                 from /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915/dvo_ivch.c:31:
/usr/src/sys/dev/drm2/i915/i915_drv.h:1676:13: note: previous declaration of 'intel_fbc_enabled' was here
 extern bool intel_fbc_enabled(struct drm_device *dev);
             ^
cc1: all warnings being treated as errors
*** [dvo_ivch.o] Error code 1

make[5]: stopped in /usr/src/sys/modules/drm2/i915kms
.ERROR_TARGET='dvo_ivch.o'
.ERROR_META_FILE='/usr/obj/xtoolchain/amd64.amd64/usr/src/sys/GENERIC-NODEBUG/modules/usr/src/sys/modules/drm2/i915kms/dvo_ivch.o.meta'
.MAKE.LEVEL='5'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
.CURDIR='/usr/src/sys/modules/drm2/i915kms'
.MAKE='make'
.OBJDIR='/usr/obj/xtoolchain/amd64.amd64/usr/src/sys/GENERIC-NODEBUG/modules/usr/src/sys/modules/drm2/i915kms'
.TARGETS='all'
DESTDIR=''
LD_LIBRARY_PATH=''
MACHINE='amd64'
MACHINE_ARCH='amd64'
MAKEOBJDIRPREFIX='/usr/obj/xtoolchain/amd64.amd64/usr/src/sys/GENERIC-NODEBUG/modules'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20160606'
PATH='/usr/obj/xtoolchain/amd64.amd64/usr/src/tmp/legacy/usr/sbin:/usr/obj/xtoolchain/amd64.amd64/usr/src/tmp/legacy/usr/bin:/usr/obj/xtoolchain/amd64.amd64/usr/src/tmp/legacy/bin:/usr/obj/xtoolchain/amd64.amd64/usr/src/tmp/usr/sbin:/usr/obj/xtoolchain/amd64.amd64/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/xtoolchain/amd64.amd64/usr/src/sys/GENERIC-NODEBUG/modules/usr/src'
.MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /root/src.configs/src.conf.amd64-xtoolchain.amd64-host /usr/src/share/mk/bsd.mkopt.mk /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /etc/src.conf /usr/src/sys/modules/drm2/i915kms/Makefile /usr/src/share/mk/bsd.kmod.mk /usr/src/sys/conf/kmod.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/sys/modules/drm2/i915kms/../Makefile.inc /usr/src/sys/modules/drm2/i915kms/../../Makefile.inc /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/sys/conf/kern.opts.mk /usr/src/sys/conf/config.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/sys/conf/kern.mk'
.PATH='. /usr/src/sys/modules/drm2/i915kms /usr/src/sys/modules/drm2/i915kms/../../../dev/drm2/i915 /usr/obj/xtoolchain/amd64.amd64/usr/src/sys/GENERIC-NODEBUG'
2 errors

The context for this is as follows.

# more ~/sys_build_scripts.amd64-host/make_amd64_nodebug_incl_clang_xtoolchain-amd64-host.sh 
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_amd64_nodebug_incl_clang_xtoolchain-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRC_ENV_CONF="/root/src.configs/src.conf.amd64-xtoolchain.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/xtoolchain/amd64.amd64" \
make $*

# more ~/src.configs/src.conf.amd64-xtoolchain.amd64-host 
TO_TYPE=amd64
TOOLS_TO_TYPE=x86_64
VERSION_CONTEXT=11.0
#
KERNCONF=GENERIC-NODEBUG
TARGET=${TO_TYPE}
.if ${.MAKE.LEVEL} == 0
TARGET_ARCH=${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITHOUT_CROSS_COMPILER=
WITHOUT_SYSTEM_COMPILER=
#
WITH_LIBCPLUSPLUS=
WITHOUT_BINUTILS_BOOTSTRAP=
WITHOUT_CLANG_BOOTSTRAP=
WITH_CLANG=
WITH_CLANG_IS_CC=
WITH_CLANG_FULL=
WITH_CLANG_EXTRAS=
WITH_LLDB=
#PORTS_MODULES=emulators/virtualbox-ose-additions
#
#WITH_BOOT= for amd64-xtoolschain-gcc/amd64-gcc gets (last I tried)... 
# --- all_subdir_sys ---
# -994 bytes available
# *** [boot2] Error code 1
WITHOUT_BOOT=
WITH_LIB32=
#
WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
WITHOUT_GCC_BOOTSTRAP=
WITHOUT_GCC=
WITHOUT_GCC_IS_CC=
WITHOUT_GNUCXX=
#
NO_WERROR=
#WERROR=
MALLOC_PRODUCTION=
#
WITH_DEBUG_FILES=
#
#
# For TO (so-called "cross") stages . . .
# So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . .
# TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . .
#
CROSS_TOOLCHAIN=${TO_TYPE}-gcc
X_COMPILER_TYPE=gcc
CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
.if ${.MAKE.LEVEL} == 0
XCC=/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-gcc
XCXX=/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-g++
XCPP=/usr/local/bin/${TOOLS_TO_TYPE}-portbld-freebsd${VERSION_CONTEXT}-cpp
.export XCC
.export XCXX
.export XCPP
XAS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
XAR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
XLD=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
XNM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
XOBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
XOBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
XRANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
#NO-SUCH: XSTRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
XSTRINGS=/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings
.export XAS
.export XAR
.export XLD
.export XNM
.export XOBJCOPY
.export XOBJDUMP
.export XRANLIB
.export XSIZE
.export XSTRINGS
.endif
#
#
# From based on clang (via system). . .
#
.if ${.MAKE.LEVEL} == 0
CC=/usr/bin/clang
CXX=/usr/bin/clang++
CPP=/usr/bin/clang-cpp
.export CC
.export CXX
.export CPP
.endif

/root/src.configs/make.conf being empty.

# svnlite info /usr/src/
Path: .
Working Copy Root Path: /usr/src
URL: svn://svn.freebsd.org/base/stable/11
Relative URL: ^/stable/11
Repository Root: svn://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 302457
Node Kind: directory
Schedule: normal
Last Changed Author: bdrewery
Last Changed Rev: 302457
Last Changed Date: 2016-07-08 14:19:48 -0700 (Fri, 08 Jul 2016)
Comment 1 Mark Millard 2016-07-11 10:21:40 UTC
(In reply to Mark Millard from comment #0)

It turns out that I tested an environment with work arounds for two other examples of redundant declarations stopping the builds:

# svnlite diff /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c
Index: /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c
===================================================================
--- /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c	(revision 302457)
+++ /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c	(working copy)
@@ -923,7 +923,7 @@
 }
 
 /* XXX */
-extern void tcp_dooptions(struct tcpopt *, u_char *, int, int);
+//extern void tcp_dooptions(struct tcpopt *, u_char *, int, int);
 
 int
 t3_syncache_respond(struct toedev *tod, void *arg, struct mbuf *m)
# svnlite diff /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c
Index: /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c
===================================================================
--- /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c	(revision 302457)
+++ /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c	(working copy)
@@ -923,7 +923,7 @@
 }
 
 /* XXX */
-extern void tcp_dooptions(struct tcpopt *, u_char *, int, int);
+//extern void tcp_dooptions(struct tcpopt *, u_char *, int, int);
 
 int
 t3_syncache_respond(struct toedev *tod, void *arg, struct mbuf *m)


This defect is really a repeat of an older pair of reports. It would be better to just update them to indicate "still true" and to mark this one as a duplicate.

*** This bug has been marked as a duplicate of bug 209924 ***