Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 135588 - Odd header situation causing problems with dev-games/ode and pyode
Summary: Odd header situation causing problems with dev-games/ode and pyode
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-06-04 20:30 UTC by Robert Scott
Modified: 2006-06-05 11:30 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Scott 2006-06-04 20:30:42 UTC
Using gcc 3.4.6. pyode isn't compiling for me, even after using a recent pyrex. I managed to track down the problem to dJointFeedback not being declared from the ode headers. If you look at that file (I'm using ode-0.5-r4), you'll see the struct is declared in the last lines of /usr/include/ode/common.h.

pyode's generated c #includes /usr/include/ode/ode.h. /usr/include/ode/ode.h. in turn includes /usr/include/ode/common.h. So it should be declared. But here's where things get wierd.

$ gcc -E common.h | grep dJointFeedback
typedef struct dJointFeedback {
} dJointFeedback;

$ gcc -E ode.h | grep dJointFeedback
$

On a debian etch system the above commands give the expected results - both outputs mention dJointFeedback.

Oh, and no statements after the dJointFeedback lines get included either, and the couple of statements before it come through fine, so something is breaking the parsing of the header _just before_ line 298 of common.h. But only when it's included from ode.h.

It's very possible that I'm just being very stupid though.

Portage 2.0.54-r2 (default-linux/x86/2005.1, gcc-3.4.6, glibc-2.2.5-r4,glibc-2.3.5-r3, 2.6.15.1 i686)
=================================================================
System uname: 2.6.15.1 i686 Pentium II (Deschutes)
Gentoo Base System version 1.6.14
dev-lang/python:     2.4.2
dev-python/pycrypto: 2.0-r1
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1
sys-devel/libtool:   1.4.1-r10, 1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium2 -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium2 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://trumpetti.atm.tut.fi/gentoo/ http://sunsite.cnlab-switch.ch/ftp/mirror/gentoo/ http://www.ibiblio.org/gentoo"
LANG="en_GB"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portageoverlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X aac aalib alsa apm arts audiofile avi berkdb bitmap-fonts bzip2 cairo cdr cjk cli crypt cups curl dri dts dv dvd eds emboss encode esd exif expat fam ffmpeg flac foomaticdb fortran gd gdbm gif glut gmp gpm gstreamer gtk gtk2 guile idn imagemagick imlib isdnlog jack jpeg kde kdeenablefinal lcms libcaca libg++ libwww mad matroska mikmod mmx mng motif moznocompose moznoirc moznomail mp3 mpeg ncurses nls nodrm offensive ogg oggvorbis openal opengl oss pam pcre pdf pdflib perl png pppd python qt quicktime readline recode reflection samba scanner sdl session slang speex spell spl ssl svg svga tcltk tcpd theora tiff truetype truetype-fonts type1-fonts udev unicode usb v4l v4l2 vcd vorbis wmf xine xinerama xml xml2 xmms xorg xscreensaver xv xvid zlib userland_GNU kernel_linux elibc_glibc"
Unset:  CTARGET, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTAGE_RSYNC_OPTS
Comment 1 Mr. Bones. (RETIRED) gentoo-dev 2006-06-04 22:13:01 UTC
Hmmm.  Here's the output on my system:

$ gcc -E /usr/include/ode/common.h | grep dJointFeedback
typedef struct dJointFeedback {
} dJointFeedback;
$ gcc -E /usr/include/ode/ode.h | grep dJointFeedback
typedef struct dJointFeedback {
} dJointFeedback;
void dJointSetFeedback (dJointID, dJointFeedback *);
dJointFeedback *dJointGetFeedback (dJointID);
Comment 2 Robert Scott 2006-06-05 07:30:53 UTC
Yes, this the result on a debian etch system. I can't figure out how a few newlines and a comment could be causing the parsing to go wrong in this specific circumstance.

I'm thinking of what I could possibly have done to my system that would make this happen.
Comment 3 Robert Scott 2006-06-05 11:30:18 UTC
Ok, sorted it out. This was me being stupid. A long time ago I had a manually installed version of ode - the headers were still sitting in /usr/local/include. They were from a previous version where dJointFeedback hadn't been implemented.