Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 216848 - media-video/gpac-0.4.4 is not 64 bit safe
Summary: media-video/gpac-0.4.4 is not 64 bit safe
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-08 09:36 UTC by Thomas Scheiblauer
Modified: 2008-06-21 14:11 UTC (History)
5 users (show)

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


Attachments
Built log (build.log,371.51 KB, text/plain)
2008-04-10 15:12 UTC, Yevgeny Armor
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Scheiblauer 2008-04-08 09:36:48 UTC
...due to a lot of implicitly declared functions returning pointers.
Because of this issue e.g. x264-encoder is not emergeable with mp4 support.


Reproducible: Always

Steps to Reproduce:
1. log into an amd64 Gentoo, etc...
2. emerge --sync
3. emerge =media-video/gpac-0.4.4

Actual Results:  
gpac-0.4.4 is not emergeable on the amd64 platform

Expected Results:  
* QA Notice: Package has poor programming practices which may compile
 *            but will almost certainly crash on 64bit architectures.
 * Function `findAttribute' implicitly converted to pointer at laser.c:65
Function `findAttribute' implicitly converted to pointer at v1.c:177
Function `findAttribute' implicitly converted to pointer at laser.c:65
Function `findAttribute' implicitly converted to pointer at v1.c:177

...
this code is not 64bit clean
...
Comment 1 Alexis Ballier gentoo-dev 2008-04-09 11:57:13 UTC
hu ? dare to attach an error ? it's been fine here on amd64


of course you are very welcome to attach a patch for the qa notices ;)
Comment 2 Yevgeny Armor 2008-04-10 15:08:19 UTC
Bug reproduced on following system (emerge --info):

Portage 2.1.5_rc2 (default/linux/amd64/2008.0, gcc-4.2.3, glibc-2.7-r2, 2.6.24-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.24-gentoo-r4 x86_64 Intel(R) Core(TM)2 Duo CPU T7800 @ 2.60GHz
Timestamp of tree: Wed, 09 Apr 2008 00:30:01 +0000
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.5
dev-lang/python:     2.5.1-r5
sys-apps/baselayout: 1.12.12
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.24
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=nocona -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
LC_ALL=""
LDFLAGS=""
LINGUAS="en ru"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/myoverlays"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 amr apache2 avahi bash-completion berkdb bidi bitmap-fonts bluetooth bzip2 cairo cdda cdio cdparanoia cdr cli cracklib crypt cups curl dbus directfb djvu dri dts dvd dvdr dvdread eds emacs encode esd fam ffmpeg firefox flac fortran freetype gd gdbm gif glitz gnome gnutls gphoto2 gpm gstreamer gtk hal hdaps httpd iconv imagemagick imlib ipv6 isdnlog java javascript jpeg latex lcms ldap live mad mailwrapper matroska midi mikmod mmx mp3 mpeg mudflap multilib mysql ncurses nls nptl nptlonly odbc ogg oggvorbis openexr opengl openmp pam pcmcia pcre pdf perl php png pppd pulseaudio python quicktime readline reflection sdl session slang snmp spell spl sqlite3 sse sse2 ssl stream svg tcpd tetex theora threads tiff truetype truetype-fonts type1-fonts unicode v4l v4l2 vcd vlm vorbis wifi x264 xine xml xorg xv xvid zeroconf zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" USERLAND="GNU" VIDEO_CARDS="vesa fbdev"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Yevgeny Armor 2008-04-10 15:12:39 UTC
Created attachment 149312 [details]
Built log

I'm attaching build log, it might be usefull
Comment 4 Zac Medico gentoo-dev 2008-04-10 16:21:37 UTC
I'm removing the new die call in 2.1.5 so that maintainers aren't disturbed by too many bugs like this one.
Comment 5 Matt 2008-06-20 09:54:54 UTC
what is the purpose of this error message ?

I'm getting this message too (also for app-office/dia), gpac was seemingly compiling & working fine for me since at least april ;(

genlop -t gpac
 * media-video/gpac

     Wed Apr 23 22:42:43 2008 >>> media-video/gpac-0.4.4
       merge time: 3 minutes and 28 seconds.

     Mon Apr 28 17:01:01 2008 >>> media-video/gpac-0.4.4
       merge time: 3 minutes and 43 seconds.

     Sun May  4 12:48:36 2008 >>> media-video/gpac-0.4.4
       merge time: 3 minutes and 48 seconds.

     Wed May 14 00:05:51 2008 >>> media-video/gpac-0.4.4
       merge time: 6 minutes and 32 seconds.

     Sat May 24 11:27:23 2008 >>> media-video/gpac-0.4.4
       merge time: 3 minutes and 35 seconds.

     Fri May 30 22:54:44 2008 >>> media-video/gpac-0.4.4
       merge time: 4 minutes and 30 seconds.

this package is failing in the installing-stage so qmerge is not possible ...

thanks in advance 
Comment 6 Alexandre Rostovtsev (RETIRED) gentoo-dev 2008-06-20 22:48:29 UTC
Once again, the gpac ebuild is dying.

 * 
 * ERROR: media-video/gpac-0.4.4 failed.
 * Call stack:
 *       misc-functions.sh, line 653:  Called install_qa_check
 *       misc-functions.sh, line 349:  Called die
 * The specific snippet of code:
 *   				alpha*|ia64*|powerpc64*|mips64*|sparc64*|x86_64*) die "this code is not 64bit clean";;
 *  The die message:
 *   this code is not 64bit clean


# emerge --info
Portage 2.2_rc1 (default-linux/amd64/2007.0/desktop, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.25-gentoo-r4.6 x86_64)
Comment 7 Zac Medico gentoo-dev 2008-06-21 00:12:54 UTC
(In reply to comment #0)
> * QA Notice: Package has poor programming practices which may compile
>  *            but will almost certainly crash on 64bit architectures.
>  * Function `findAttribute' implicitly converted to pointer at laser.c:65
> Function `findAttribute' implicitly converted to pointer at v1.c:177
> Function `findAttribute' implicitly converted to pointer at laser.c:65
> Function `findAttribute' implicitly converted to pointer at v1.c:177

These warnings seem like they are not legitimate (possible compiler bug). Here are the specific lines of code:

Function signature at gpac-0.4.4/applications/generators/SVG/main.c, line 273:

  SVGGenAttribute *findAttribute(SVGGenElement *e, char *name)

Function call at gpac-0.4.4/applications/generators/SVG/laser.c, line 65:

  SVGGenAttribute *a = findAttribute(elt, att_name);

Function call at gpac-0.4.4/applications/generators/SVG/v1.c, line 177:

  SVGGenAttribute *a = findAttribute(elt, att_name);

So, the compiler warning seems to be saying that storing a return value of type SVGGenAttribute * in a variable of the same type is unsafe due to the value being 'implicitly converted to pointer'. Is this a compiler bug? If not, how can we fix the code to avoid this warning?
Comment 8 SpanKY gentoo-dev 2008-06-21 04:00:46 UTC
wrong ... read the whole log instead of taking a snippet

laser.c:65: warning: implicit declaration of function ‘findAttribute’

the gpac code *is broken* and it *will fail on 64bit systems*

dont go dropping die's like this without alerting people ... the check in portage is 100% valid and not hitting any false positives
Comment 9 Zac Medico gentoo-dev 2008-06-21 07:28:14 UTC
Great, thanks for the clarification. I take it that the "implicitly converted to pointer" warnings are just a symptom triggered by the root problem which is the "implicit declaration". If I understand correctly, these are the warnings (from attached build log) that one should focus on in order to fix the root problem:

QA Notice: Package has poor programming practices which may compile
fine but exhibit random runtime failures.
laser.c:65: warning: implicit declaration of function ‘findAttribute’
main.c:923: warning: implicit declaration of function ‘generate_table’
main.c:925: warning: implicit declaration of function ‘generateSVGCode_V1’
main.c:926: warning: implicit declaration of function ‘generateSVGCode_V2’
main.c:927: warning: implicit declaration of function ‘generateSVGCode_V3’
v1.c:41: warning: implicit declaration of function ‘generateAttributes’
v1.c:177: warning: implicit declaration of function ‘findAttribute’
v1.c:186: warning: implicit declaration of function ‘svgNameToImplementationName’
v1.c:610: warning: implicit declaration of function ‘generate_laser_tables’
v2.c:335: warning: implicit declaration of function ‘generateCoreInfo’
v2.c:338: warning: implicit declaration of function ‘generateGenericInfo’
v2.c:466: warning: implicit declaration of function ‘generate_laser_tables’
v3.c:289: warning: implicit declaration of function ‘generate_laser_tables_da’
Comment 10 SpanKY gentoo-dev 2008-06-21 08:50:12 UTC
right ... implicit function decls get an "int" return type.  so implicit decls + pointer returns == failure on any system where "int" cannot hold a pointer.  basically, all systems other than 32bit ones.

if there's a case where that die is a false positive, please bring it up ... i have yet to see this particular one trigger a false positive which is why ive made it a hard failure on 64bit systems.
Comment 11 Patrizio Bassi 2008-06-21 10:34:43 UTC
it's realyl strange, firstly we compile all than the ebuild dies.
Comment 12 Alexis Ballier gentoo-dev 2008-06-21 14:11:10 UTC
should be fixed now that i can get the error too ;)