Summary: | media-libs/mesa-8.0[d3d] fails to build: ‘ID3D10Include’ has not been declared | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Dennis Schridde <dschridde+gentoobugs> |
Component: | [OLD] Library | Assignee: | Gentoo X packagers <x11> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | CC: | bugs, candrews, cedric.godin, dirk, keenblade, kevinlyles, kripton, manschwetus, mobiusstripper, nikoli, sven.eden, xangel1 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.freedesktop.org/show_bug.cgi?id=45292 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build.log
Patch to re-insert the missing typedef |
Description
Dennis Schridde
2012-02-11 17:18:53 UTC
Created attachment 301581 [details]
build.log
Created attachment 302687 [details, diff] Patch to re-insert the missing typedef Hi! This patch helps me getting past this error. I then have the next error with a redefinition of the timeval struct. I've already put my 2 cents (and the attached patch) into this bug report: https://bugs.freedesktop.org/show_bug.cgi?id=45292 To the second error, I'll copy my (brief!) findings here, maybe someone with more insight into mesa/wine can whip up a patch? ======= From linked bug ======= System: Gentoo x64, kernel 3.2.5, wine 1.3.37 But it does not mean it works, I run into the next error. Build snippet: ------------------------------- In file included from ../w32api/windows.h:66:0, from ../w32api/rpc.h:29, from ../d3dapi/d3d11shader.h:7, from src/dxbc_parse.cpp:29: ../w32api/winsock.h:447:16: error: redefinition of 'struct timeval' /usr/include/bits/time.h:31:8: error: previous definition of 'struct timeval' ../w32api/winsock.h:451:10: error: invalid type in declaration before ',' token ------------------------------- As "w32api" is just a link to /usr/include/wine/windows, it is a wine thing. But: When timeval is defined from /usr/include/bits/time.h, the macro "_STRUCT_TIMEVAL" is defined. Unfortunately I can't seem to find a point where to patch any idl file to check that. There are two possibilities. A) windows.h does not include winsock.h if WINE_NOWINSOCK is defined 65 #ifndef WINE_NOWINSOCK 66 #include <winsock.h> 67 #endif /* WINE_NOWINSOCK */ B) define _TIMEVAL_DEFINED if _STRUCT_TIMEVAL is defined, because winsock.h checks that: #ifndef _TIMEVAL_DEFINED #define _TIMEVAL_DEFINED typedef struct WS(timeval) { LONG tv_sec; /* seconds */ LONG tv_usec; /* and microseconds */ } TIMEVAL, *PTIMEVAL, *LPTIMEVAL; #endif ------------- I'd prefer the latter, but I have no idea where to put that, yet. Hey, I'm curious what people want the d3d state tracker for. I don't know how its used. (In reply to comment #3) > I'm curious what people want the d3d state tracker for. I don't know how its > used. Afaik it is currently not used by anything in portage, but wine will use it one day. I for my part just want to participate in early testing. Although this does not fit into a bug track, the d3d implementation is "already working and can run a few DirectX 10/11 texturing demos on Linux at the moment." and might be a starting point to "have Mesa and Wine work together on this." (Luca Barbieri) Searching the web with Google for "Mesa Direct 3D state tracker d3d1x" reveals quite a lot. As for the reason: I am a developer and want to test some stuff with it. Same problem here. I can't build mesa since 8.0. If I add "media-libs/mesa -d3d" to package.use would it compile OK ? would I loose some functionality to my video card. I have a laptop AMD A6-3400M APU with Radeon(tm) HD Graphics. Regards, Bernard -------------------------------------------------------- funtoo@zeus ~ $ emerge --info media-libs/mesa Portage 2.3.2-r2 (default/linux/amd64/2008.0/desktop, gcc-4.6.2, glibc-2.13-r4, 3.3.0-rc4-funtoo-kvm x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.3.0-rc4-funtoo-kvm-x86_64-AMD_A6-3400M_APU_with_Radeon-tm-_HD_Graphics-with-gentoo-2.1.8 Timestamp of tree: Sun, 11 Mar 2012 18:00:01 +0000 app-shells/bash: 4.2_p20 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.7.1-r3, 3.2.2 dev-util/cmake: 2.8.7-r5 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.1.8-r3 sys-apps/openrc: 0.8.3-r5 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.3 sys-devel/binutils: 2.21.1-r1 sys-devel/gcc: 4.6.2 sys-devel/gcc-config: 1.5 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 2.6.39 (virtual/os-headers) sys-libs/glibc: 2.13-r4 Repositories: gentoo desktop-effects sunrise local Installed sets: ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=amdfam10 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=amdfam10 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles mini-manifest news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org ftp://mirror.csclub.uwaterloo.ca/gentoo-distfiles/" LANG="fr_CA.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed" LINGUAS="fr" MAKEOPTS="-j5 -l5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/desktop-effects /var/lib/layman/sunrise /usr/local/portage" SYNC="git://github.com/funtoo/ports-2012.git" SYNC_USER="root" USE="X a52 aac acl acpi alac alsa amd64 berkdb bindist bluetooth branding bzip2 cairo cdda cdr classic cli composite consolekit cracklib crypt cups cxx d3d dbus dri dts dvd dvdr dvdread emboss encode exif fam firefox flac fortran gallium gdbm gdu gif gimp gnome gnome-online-accounts gpm gtk gtk3 iconv ipv6 jpeg jpeg2k lame lcms ldap libkms libnotif libnotify lua mad mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png policykit ppds pppd pulseaudio python qt3support qt4 readline sdl session spell sse sse2 ssl startup-notification svg sysfs tcpd tiff tls truetype udev unicode usb userlocales vde vorbis w32codecs wavpack x264 xcb xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vesa radeon r600" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, SYNC_UMASK ================================================================= Package Settings ================================================================= media-libs/mesa-7.11.2 was built with the following: USE="bindist classic egl gallium llvm (multilib) nptl shared-glapi -debug -gbm -gles -motif -openvg -osmesa -pax_kernel -pic (-selinux) -shared-dricore" VIDEO_CARDS="radeon -intel -mach64 -mga -nouveau -r128 -savage -sis -tdfx -via -vmware" CFLAGS="-O2 -march=amdfam10 -pipe -ffast-math" CXXFLAGS="-O2 -march=amdfam10 -pipe -ffast-math" (In reply to comment #6) > If I add "media-libs/mesa -d3d" to package.use would it compile OK ? > > would I loose some functionality to my video card. Yes, it will build with USE="-d3d" and No, you won't loose any functionality (In reply to comment #7) > (In reply to comment #6) > > If I add "media-libs/mesa -d3d" to package.use would it compile OK ? > > > > would I loose some functionality to my video card. > > Yes, it will build with USE="-d3d" and > No, you won't loose any functionality Thanks, it compiled OK with -d3d. Since this flag is not usefull to many, could it be set to -d3d unless specified in package.use ? It would hurt less peoples. Regards, Bernard (In reply to comment #8) > (In reply to comment #7) > > (In reply to comment #6) > > > If I add "media-libs/mesa -d3d" to package.use would it compile OK ? > > > > > > would I loose some functionality to my video card. > > > > Yes, it will build with USE="-d3d" and > > No, you won't loose any functionality > > Thanks, it compiled OK with -d3d. Since this flag is not usefull to many, > could it be set to -d3d unless specified in package.use ? It would hurt > less peoples. > > Regards, > > Bernard It's not on-by-default, and it's a use flag that builds code that's not used by anything, so if you're building it presumably you know what you're doing and why. I can add the patch, but it sort of doesn't even matter -- I'm kind of wondering why I bothered adding the flag to begin with. (In reply to comment #9) > and why. I can add the patch, but it sort of doesn't even matter -- I'm kind > of wondering why I bothered adding the flag to begin with. Well, the patch doesn't enable anybody to build with d3d use flag turned on, yet, as upstream has more issues to fix. However, it might be that I am not the only one wanting to experiment with the d3d stuff once it is at least building, so I kindly ask you to not remove it (yet). If I understand the upstream bug correctly, it does build against old versions of wine. (In reply to comment #10) > However, it might be that I am not the only one wanting to experiment with the > d3d stuff once it is at least building, so I kindly ask you to not remove it. +1 Just a small update: Still happens with mesa-8.0.2 Persists in 8.0.3: In file included from ../d3dapi/d3d10.h:5704:0, from ../d3dapi/d3d10_1.h:39, from ../d3dapi/d3d11.h:7774, from ../gd3dapi/galliumd3d11.h:28, from src/guids.cpp:3: ../w32api/d3d10effect.h: At global scope: ../w32api/d3d10effect.h:831:44: error: ‘ID3D10Include’ has not been declared There are also a huge load of these: ../d3dapi/d3d10shader.h: In function ‘const GUID& __wine_uuidof() [with T = ID3D10ShaderReflection, GUID = _GUID]’: ../d3dapi/d3d10shader.h:486:1: warning: returning reference to temporary [enabled by default] *** Bug 423223 has been marked as a duplicate of this bug. *** *** Bug 423417 has been marked as a duplicate of this bug. *** I confirm that this works around the compilation failure: echo "x11-apps/mesa-progs -d3d" >> /etc/portage/package.use oops, that's supposed to be: echo "media-libs/mesa -d3d" >> /etc/portage/package.use Reproducible with mesa 8.0.3 In media-libs/mesa-8.1_rc1_pre20120724 this changed to: gmake[3]: Entering directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers' gmake[4]: Entering directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers/d3d1x' gmake[5]: Entering directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers/d3d1x/d3dapi' rm -f depend touch depend /usr/bin/makedepend -fdepend -I/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include-fixed -I. -I../../../../../src/gallium/include -I../../../../../src/gallium/auxiliary -I../../../../../src/galli um/drivers 2> /dev/null gmake[5]: Leaving directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers/d3d1x/d3dapi' gmake[5]: Entering directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers/d3d1x/d3dapi' widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H dxgi.h dxgi.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H d3d11.h d3d11.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H d3d11shader.h d3d11shader.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H d3dcommon.h d3dcommon.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H dxgiformat.h dxgiformat.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H d3d10.h d3d10.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H d3d10shader.h d3d10shader.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H dxgitype.h dxgitype.idl widl -I../gd3dapi -I../d3dapi -I../w32api -U /dev/null -H d3d10_1.h d3d10_1.idl /bin/sh ../../../../../bin/mklib -o -static mklib: Error: no object files specified (-h for help) gmake[5]: *** [lib.a] Error 1 gmake[5]: *** Waiting for unfinished jobs.... gmake[5]: Leaving directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers/d3d1x/d3dapi' gmake[4]: *** [all] Error 2 gmake[4]: Leaving directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers/d3d1x' gmake[3]: *** [subdirs] Error 1 gmake[3]: Leaving directory `/var/tmp/portage/media-libs/mesa-8.1_rc1_pre20120724/work/Mesa-8.1-rc1_pre20120724/src/gallium/state_trackers' g In reference to comment 20. I also get this exact error if I have USE="d3d" for media-libs/mesa-8.1_rc1_pre20120724. This is on amd64 using radeon driver for an r600 card. I am disappointed to find out that even if it did build it wouldn't be useful to me. I thought that implementing directx would be a good thing (implying its not implemented now). No work is being done on this upstream, and we're not going to fix it in Gentoo. Remind me why I don't remove the USE flag (or as least mask it)? (In reply to comment #22) > Remind me why I don't remove the USE flag (or as least mask it)? I don't even know why we added it in the first place... It at least used to build against some old version of wine. I'm ok with masking the flag. It wou(In reply to comment #22) > No work is being done on this upstream, and we're not going to fix it in > Gentoo. > > Remind me why I don't remove the USE flag (or as least mask it)? It would have been great to experiment with it, as it is an interesting idea. But if upstream development is dead, or at least stalled, there is no real use for an "official" d3d USE-flag that doesn't even allow to build against recent versions of wine, is there? d3d USE flag disabled. d3d1x configure option also disabled upstream. Resolving as UPSTREAM since it'll take upstream work before this stuff works. |