Summary: | smpeg-xmms does not see smpeg includes | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | John Davis (zhen) (RETIRED) <zhen> |
Component: | Current packages | Assignee: | Doug Goldstein (RETIRED) <cardoe> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | mkennedy |
Priority: | Normal | ||
Version: | 1.3 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | gcc 3.1 fix for smpeg |
Description
John Davis (zhen) (RETIRED)
2002-07-25 08:32:25 UTC
I believe this is a gcc-3.1 error and have seen it before, but do not know the solution. The exact error is: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/../../../libsmpeg.so: undefined referen ce to `operator new[](unsigned)' /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/../../../libsmpeg.so: undefined referen ce to `operator delete(void*)' /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/../../../libsmpeg.so: undefined referen ce to `operator delete[](void*)' /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1.1/../../../libsmpeg.so: undefined referen ce to `operator new(unsigned)' collect2: ld returned 1 exit status configure: failed program was: And smpeg has been compiled with the same compiler (gcc 3.1.1-r1)... now why is is asking for clearly C++ symbols on a C library.. Is it very bizzare... Small test case: gcc test.c -lsmpeg on the file: char SMPEG_new_data(); int main() { SMPEG_new_data() ; return 0; } but its a smpeg bug It works when compiled as g++ -lsmpeg conftest.c and declaring the function as: extern "C" char SMPEG_new_data(); smpeg is C++.... compiled with a C interface... Created attachment 2717 [details, diff]
gcc 3.1 fix for smpeg
This is the gcc 3.1 fix from RedHat for smpeg
New ebuilds in Portage! Please unmask and test! smpeg-0.4.4-r3 and smpeg-xmms-0.3.4-r2 Please post which compiler you used! I want some successful tests with gcc-3.1 and gcc-2.95 before unmasking! Included a new ebuild of smpeg-xmms-0.3.5 :) Please test. It's still masked. Compiled with Gcc 3.1 and these flags: CHOST="i686-pc-linux-gnu" CFLAGS="-mcpu=athlon -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow -mno-sse -mno-sse2" CXXFLAGS="-mcpu=athlon -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow -mno-sse -mno-sse2" Just watched a 2h DivX movie without problems :) Excellent. It was tested on 2 gcc-2.95, 1 gcc-3.1 and 1 gcc-3.2 box and all confirmed it worked so I think this is going to be an unmask... |