Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 66740 - avifile-0.7.41.20041001 doesn't compile on amd64
Summary: avifile-0.7.41.20041001 doesn't compile on amd64
Status: RESOLVED LATER
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Jeremy Huddleston (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-08 04:07 UTC by Jocelyn Mayer
Modified: 2004-10-23 07:34 UTC (History)
2 users (show)

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


Attachments
emerge --info output (emerge.info,2.63 KB, text/plain)
2004-10-08 16:08 UTC, Jocelyn Mayer
Details
emerge log file (4397-avifile-0.7.41.20041001.log,247.86 KB, text/plain)
2004-10-09 05:03 UTC, Jocelyn Mayer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jocelyn Mayer 2004-10-08 04:07:54 UTC
Here's the output of the end of the build:
gcc -O2 -funroll-loops -pipe -fexpensive-optimizations -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -pipe -o ffmpeg ffmpeg.o cmdutils.o  libavformat/.libs/libavformat.a -lz libavcodec/.libs/libavcodec.a -lm -lnsl -ldl
libavcodec/.libs/libavcodec.a(pthread.o)(.text+0x90): In function `avcodec_thread_free':
: undefined reference to `pthread_join'
libavcodec/.libs/libavcodec.a(pthread.o)(.text+0x238): In function `avcodec_thread_init':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
make[3]: *** [ffmpeg] Error 1
make[3]: Leaving directory `/var/tmp/portage/avifile-0.7.41.20041001/work/avifile-0.7-0.7.41/ffmpeg'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/var/tmp/portage/avifile-0.7.41.20041001/work/avifile-0.7-0.7.41/ffmpeg'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/avifile-0.7.41.20041001/work/avifile-0.7-0.7.41/ffmpeg'
make: *** [check-recursive] Error 1

Seems that -lpthread is missing here...

Here are the flags used to build:
[ebuild     U ] media-video/avifile-0.7.41.20041001 [0.7.38.20030710-r1] (-3dnow) +X +alsa +avi -debug +dvd +esd (-mmx) +oggvorbis -qt +sdl (-sse) -static +truetype +xv +zlib 0 kB 

gcc version 3.3.4 20040623
glibc-2.3.4.20040808-r1


Reproducible: Always
Steps to Reproduce:
1.
2.
3.
Comment 1 Jeremy Huddleston (RETIRED) gentoo-dev 2004-10-08 12:04:05 UTC
works good for me.  Can you please emerge sync and try again as there have been some recent changes.

Also, please post the output of 'emerge --info'
Comment 2 Jocelyn Mayer 2004-10-08 16:07:20 UTC
I do synchronise my portage tree daily and I did retried (I always do...) after a sync before posting a bug report.
Here's the ebuild file I got:
# ls -l /usr/portage/media-video/avifile/avifile-0.7.41.20041001.ebuild 
-rw-r--r--  1 root root 3891 Oct  7 11:06 /usr/portage/media-video/avifile/avifile-0.7.41.20041001.ebuild
# md5sum /usr/portage/media-video/avifile/avifile-0.7.41.20041001.ebuild 
542809be7e4fe97811ff3a90238cd1b3  /usr/portage/media-video/avifile/avifile-0.7.41.20041001.ebuild

You can easily see there is a bug: you can never use the pthread library without explicitely link against it.
It would be surprising (and abnormal...) that you could do this without hacking the gcc specs.

I'll send an attachment with my current emerge info output.
What I did also forget was to send the flags used for this package:
# emerge -b --update --verbose --pretend =media-video/avifile-0.7.41.20041001

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild     U ] media-video/avifile-0.7.41.20041001 [0.7.38.20030710-r1] (-3dnow) +X +alsa +avi -debug +dvd +esd (-mmx) +oggvorbis -qt +sdl (-sse) -static +truetype +xv +zlib 0 kB 

Comment 3 Jocelyn Mayer 2004-10-08 16:08:05 UTC
Created attachment 41397 [details]
emerge --info output
Comment 4 Jeremy Huddleston (RETIRED) gentoo-dev 2004-10-08 17:23:05 UTC
I've got:

[ebuild   R   ] media-video/avifile-0.7.41.20041001  (-3dnow) +X +alsa +avi -debug +dvd +esd (-mmx) +oggvorbis +qt +sdl (-sse) -static +truetype +xv +zlib 0 kB 

I'm betting that it's the +qt because libqt-mt is linked against pthread
Comment 5 Jeremy Huddleston (RETIRED) gentoo-dev 2004-10-08 17:55:30 UTC
I tried with your cflags, and it linked fine for me...
Comment 6 Jocelyn Mayer 2004-10-09 05:01:04 UTC
OK, I'm sorry: I still forgot one point:
I got "maketest" in my FEATURES, and I realised, re-reading the emerge log, that the build fails to build ffmpeg in the test phase.
I'll send the complete log so you can see.
One thing is sure, ffmpeg cannot link without the -lpthread flag if it uses the pthread library, whatever are the other libraries given...
Comment 7 Jocelyn Mayer 2004-10-09 05:03:31 UTC
Created attachment 41411 [details]
emerge log file
Comment 8 Faber 2004-10-22 12:46:31 UTC
Same error here, on x86; I've the maketest flag in FEATURES
Comment 9 Chris White (RETIRED) gentoo-dev 2004-10-22 18:48:46 UTC
Just out of curiousity, do you folks have nplt built in to glibc?

If not, I'd try making sure qt has threads enabled.  If that doesn't work, I'll
try going to an amd64 dev box and seeing what I can find.
Comment 10 Jeremy Huddleston (RETIRED) gentoo-dev 2004-10-23 07:34:40 UTC
chris, it has nothing to do with qt... the problem is that when they have USE=maketest, it tries to build ffmpeg, but the rules for ffmpeg are fubar... for now, I'm just disabling src_test()...