[opensuse-factory] libstdc++.la library
Hi! In what package are the libstdc++.la library? I'm rebuilding the cinelerra package from the packman repo, because the original hangs, and I got: /usr/include/bits/stdio2.h:66:1: warning: this is the location of the previous definition /bin/sh ../../../libtool --tag=CC --mode=link gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_MMX -DUSE_MMX -DX86_CPU -DHAVE_MMX -DHAVE_BUILTIN_VECTOR -D_GNU_SOURCE -DHAVE_AV_CONFIG_H -I./.. -O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -o libavcodec.la bitstream.lo utils.lo mem.lo allcodecs.lo mpegvideo.lo jrevdct.lo jfdctfst.lo jfdctint.lo mpegaudio.lo ac3enc.lo mjpeg.lo resample.lo resample2.lo dsputil.lo motion_est.lo imgconvert.lo imgresample.lo mpeg12.lo mpegaudiodec.lo pcm.lo simple_idct.lo ratecontrol.lo adpcm.lo eval.lo error_resilience.lo fft.lo mdct.lo raw.lo golomb.lo cabac.lo dpcm.lo adx.lo rational.lo faandct.lo parser.lo g726.lo vp3dsp.lo integer.lo h264idct.lo rangecoder.lo pnm.lo h263.lo msmpeg4.lo h263dec.lo dvdsub.lo dvbsub.lo dvbsubdec.lo aasc.lo alac.lo asv1.lo cinepak.lo cljr.lo cyuv.lo dv.lo 8bps.lo ffv1.lo flac.lo flicvideo.lo 4xm.lo fraps.lo h261.lo h264.lo huffyuv.lo idcinvideo.lo indeo2.lo indeo3.lo interplayvideo.lo lcl.lo loco.lo mace.lo msrle.lo msvideo1.lo png.lo qdrw.lo qpeg.lo qtrle.lo ra144.lo ra288.lo roqvideo.lo rpza.lo rv10.lo shorten.lo smc.lo snow.lo sonic.lo svq1.lo truemotion1.lo tscc.lo ulti.lo vc9.lo vcr1.lo vmdav.lo vorbis.lo vp3.lo vqavideo.lo wmadec.lo wnv1.lo ws-snd1.lo xan.lo xl.lo xvmcvideo.lo a52dec.lo faad.lo faac.lo x264.lo mp3lameaudio.lo oggvorbis.lo oggtheora.lo i386/libavcodeci386.la -la52 -lfaad -lfaac -lx264 -lmp3lame -logg -lvorbis -lm -logg -lvorbisenc -lvorbis -lm -logg -lvorbisfile -lvorbis -lm -logg -ltheora -logg -lm -ldl -lpthread grep: /usr/lib/libstdc++.la: No such file or directory /usr/bin/sed: can't read /usr/lib/libstdc++.la: No such file or directory libtool: link: `/usr/lib/libstdc++.la' is not a valid libtool archive I made a "locate libstdc++" and found: /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.so /usr/lib/libstdc++-3-libc6.1-2-2.10.0.so /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.1-1.so.2 /usr/lib/libstdc++-libc6.1-2.so.3 /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++.so.2.7.2 /usr/lib/libstdc++.so.2.7.2.8 /usr/lib/libstdc++.so.2.8 /usr/lib/libstdc++.so.2.8.0 /usr/lib/libstdc++.so.2.9 /usr/lib/libstdc++.so.2.9.0 /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.5.0.5 /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.8 /usr/share/doc/packages/libstdc++-devel /usr/share/doc/packages/libstdc++-devel/README /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a is nearly than, but is the same? I can do a symlink as libstdc++.la pinting to /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a? Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Juan Erbes schrieb:
In what package are the libstdc++.la library?
It's nowhere, this has been discussed already.
I'm rebuilding the cinelerra package from the packman repo, because the original hangs, and I got: [...] grep: /usr/lib/libstdc++.la: No such file or directory /usr/bin/sed: can't read /usr/lib/libstdc++.la: No such file or directory libtool: link: `/usr/lib/libstdc++.la' is not a valid libtool archive
You need to find out which one of the other .la files references libstdc++.la, and rebuild that, so that it loses its reference to libstdc++.la.
I made a "locate libstdc++" and found: [...] /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a is nearly than, but is the same? I can do a symlink as libstdc++.la pinting to /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a?
No. You exactly found the reason why libstdc++.la had to be removed, but the solution is not a symlink. The libstdc++ development files are now in a versioned directory to allow parallel installation of multiple versions, but libstdc++.la does not carry its version number in the filename and so it had to die. In doubt, rebuild _everything_ - that should do the trick. Andreas Hanke --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
2006/10/30, Andreas Hanke
Juan Erbes schrieb:
In what package are the libstdc++.la library?
/usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a?
No.
You exactly found the reason why libstdc++.la had to be removed, but the solution is not a symlink.
The libstdc++ development files are now in a versioned directory to allow parallel installation of multiple versions, but libstdc++.la does not carry its version number in the filename and so it had to die.
In doubt, rebuild _everything_ - that should do the trick.
Thanks. I have downloaded the cinelerra source and when I do the ./configure, I got: *** Yasm is required. Download it from www.tortall.net/projects/yasm/ Giving up and going to a movie. Now I download yasm from the OSS repo. Why You dońt include cinelerra in the distro? I do'nt find a descent application to capture analog video with a bttv based card. Xawtv, is obsolete, and do'nt work right, and kino only supports DV capture. The OSS version of zapping do'nt support analog video capture. Thanks
2006/10/30, Andreas Hanke
You need to find out which one of the other .la files references libstdc++.la, and rebuild that, so that it loses its reference to libstdc++.la.
I made a "locate libstdc++" and found: [...] /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a is nearly than, but is the same? I can do a symlink as libstdc++.la pinting to /usr/lib/gcc/i586-suse-linux/4.1.2/libstdc++.a?
No.
You exactly found the reason why libstdc++.la had to be removed, but the solution is not a symlink.
The libstdc++ development files are now in a versioned directory to allow parallel installation of multiple versions, but libstdc++.la does not carry its version number in the filename and so it had to die.
In doubt, rebuild _everything_ - that should do the trick.
I have downloaded the cinelerra sources, and building from zero, I got the same error: if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../common/faad -I../common/mp4ff -O2 -g -O2 -MT audio.o -MD -MP -MF ".deps/audio.Tpo" -c -o audio.o audio.c; \ then mv -f ".deps/audio.Tpo" ".deps/audio.Po"; else rm -f ".deps/audio.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../common/faad -I../common/mp4ff -O2 -g -O2 -MT getopt.o -MD -MP -MF ".deps/getopt.Tpo" -c -o getopt.o `test -f '../common/faad/getopt.c' || echo './'`../common/faad/getopt.c; \ then mv -f ".deps/getopt.Tpo" ".deps/getopt.Po"; else rm -f ".deps/getopt.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -O2 -g -O2 -o faad main.o audio.o getopt.o ../libfaad/libfaad.la ../common/mp4ff/libmp4ff.la -lmp4v2 -lmp4v2 mkdir .libs libtool: link: cannot find the library `/usr/lib/libstdc++.la' make[5]: *** [faad] Error 1 I do'nt know hot to resolve this problem. The other option is that You include the cinelerra application in the building service, for include it in the distro. Opensuse do'nt has any acceptable video editor, and I mean cinelerra is the best opensource option. Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Juan Erbes schrieb:
I have downloaded the cinelerra sources, and building from zero, I got the same error:
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../common/faad -I../common/mp4ff -O2 -g -O2 -MT audio.o -MD -MP -MF ".deps/audio.Tpo" -c -o audio.o audio.c; \ then mv -f ".deps/audio.Tpo" ".deps/audio.Po"; else rm -f ".deps/audio.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../common/faad -I../common/mp4ff -O2 -g -O2 -MT getopt.o -MD -MP -MF ".deps/getopt.Tpo" -c -o getopt.o `test -f '../common/faad/getopt.c' || echo './'`../common/faad/getopt.c; \ then mv -f ".deps/getopt.Tpo" ".deps/getopt.Po"; else rm -f ".deps/getopt.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -O2 -g -O2 -o faad main.o audio.o getopt.o ../libfaad/libfaad.la ../common/mp4ff/libmp4ff.la -lmp4v2 -lmp4v2 mkdir .libs libtool: link: cannot find the library `/usr/lib/libstdc++.la' make[5]: *** [faad] Error 1
This means that one of libfaad.la libmp4ff.la libmp4v2.la still have /usr/lib/libstdc++.la in their dependency_libs line. You are sure that there are no precompiled 10.1 binary packages on your system, not even libmp4v2?
The other option is that You include the cinelerra application in the building service, for include it in the distro. Opensuse do'nt has any acceptable video editor, and I mean cinelerra is the best opensource option.
Cinelerra will never be distributed on any opensuse.org server because it depends on libraries that implement patented algorithms. As you can see above, there are libfaad and libmp4ff and libmp4v2 linked in => Sorry, not possible. There are video editors that depend only on free codecs in the distro. Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
2006/10/31, Andreas Hanke
Juan Erbes schrieb:
I have downloaded the cinelerra sources, and building from zero, I got the same error:
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../common/faad -I../common/mp4ff -O2 -g -O2 -MT audio.o -MD -MP -MF ".deps/audio.Tpo" -c -o audio.o audio.c; \ then mv -f ".deps/audio.Tpo" ".deps/audio.Po"; else rm -f ".deps/audio.Tpo"; exit 1; fi if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../common/faad -I../common/mp4ff -O2 -g -O2 -MT getopt.o -MD -MP -MF ".deps/getopt.Tpo" -c -o getopt.o `test -f '../common/faad/getopt.c' || echo './'`../common/faad/getopt.c; \ then mv -f ".deps/getopt.Tpo" ".deps/getopt.Po"; else rm -f ".deps/getopt.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -O2 -g -O2 -o faad main.o audio.o getopt.o ../libfaad/libfaad.la ../common/mp4ff/libmp4ff.la -lmp4v2 -lmp4v2 mkdir .libs libtool: link: cannot find the library `/usr/lib/libstdc++.la' make[5]: *** [faad] Error 1
This means that one of
libfaad.la libmp4ff.la libmp4v2.la
still have /usr/lib/libstdc++.la in their dependency_libs line.
You are sure that there are no precompiled 10.1 binary packages on your system, not even libmp4v2?
Yes I have installed from the packman repo some binaries, and I have: /usr/lib/libfaad.la /usr/lib/libmp4v2.la But I do'nt remember from what packages they are. Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
2006/10/31, Andreas Hanke
This means that one of
libfaad.la libmp4ff.la libmp4v2.la
still have /usr/lib/libstdc++.la in their dependency_libs line.
You are sure that there are no precompiled 10.1 binary packages on your system, not even libmp4v2?
I have in /usr/lib about 300 files of .la libraries. I mean that I need to format the system disk and installing from zero. What You mean? Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Juan Erbes schrieb:
Yes I have installed from the packman repo some binaries, and I have: /usr/lib/libfaad.la /usr/lib/libmp4v2.la But I do'nt remember from what packages they are.
OK, then please do: rpm -qf /usr/lib/libfaad.la rpm -qf /usr/lib/libmp4v2.la This will tell you which packages they belong to. These packages need to be rebuilt. Alternatively, you can manually remove all references to libstdc++.la from them: sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/libfaad.la sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/libmp4v2.la In general, you can't take binary packages from distro X and install them on distro X+1. It's sometimes working, but fails often in rather obscure ways. Andreas Hanke --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Juan Erbes schrieb:
I have in /usr/lib about 300 files of .la libraries. I mean that I need to format the system disk and installing from zero. What You mean?
No, of course not. You need to identify which of these .la files come from old binary packages that have been built for an earlier distribution, and re-build them (but just these old packages and not all). Or remove the libstdc++.la references manually from these affected/old files. Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
2006/10/31, Andreas Hanke
Juan Erbes schrieb:
I have in /usr/lib about 300 files of .la libraries. I mean that I need to format the system disk and installing from zero. What You mean?
No, of course not.
You need to identify which of these .la files come from old binary packages that have been built for an earlier distribution, and re-build them (but just these old packages and not all).
Or remove the libstdc++.la references manually from these affected/old files.
Why I know if one of the 320 files is referenced to libstdc++.la? Thanks --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
2006/10/31, Andreas Hanke
Juan Erbes schrieb:
I have in /usr/lib about 300 files of .la libraries. I mean that I need to format the system disk and installing from zero. What You mean?
No, of course not.
You need to identify which of these .la files come from old binary packages that have been built for an earlier distribution, and re-build them (but just these old packages and not all).
Or remove the libstdc++.la references manually from these affected/old files.
I do: /usr/lib # sed -i 's/\/usr\/lib\/libstdc++.la//g' *.la It's right? Thanks again --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
Juan Erbes schrieb:
Why I know if one of the 320 files is referenced to libstdc++.la?
Only those from the PackMan repo and other non-SUSE repos have references to libstdc++.la, and only if they are build for distros < 10.2. Once there is a 10.2 PackMan repo with packages specifically built for 10.2, you don't need to worry any more. I recommend just waiting until 10.2 goes Gold. But if you need to build Cinelerra now, you have multiple options, please pick whatever you like: 1) Identify the PackMan packages ("rpm -qa | grep '\.pm\.') and rebuild them instead of using the 10.1 binaries. 2) Remove the libstdc++.la references manually whenever you find one: sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/libfaad.la sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/libmp4v2.la 3) Remove them from all .la files even without checking if there are any: sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/lib*.la If you just want to know whether there are any further libstdc++.la references, you can do: grep -Ho '/usr/lib/libstdc++\.la' /usr/lib/lib*.la Do whatever you prefer. I recommend (2) for now, you can still do (3) later if you hit more problems. Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
2006/10/31, Andreas Hanke
Juan Erbes schrieb:
Why I know if one of the 320 files is referenced to libstdc++.la?
Only those from the PackMan repo and other non-SUSE repos have references to libstdc++.la, and only if they are build for distros < 10.2. Once there is a 10.2 PackMan repo with packages specifically built for 10.2, you don't need to worry any more.
I recommend just waiting until 10.2 goes Gold. But if you need to build Cinelerra now, you have multiple options, please pick whatever you like:
1) Identify the PackMan packages ("rpm -qa | grep '\.pm\.') and rebuild them instead of using the 10.1 binaries.
2) Remove the libstdc++.la references manually whenever you find one:
sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/libfaad.la sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/libmp4v2.la
3) Remove them from all .la files even without checking if there are any:
sed -i 's/\/usr\/lib\/libstdc++.la//g' /usr/lib/lib*.la
If you just want to know whether there are any further libstdc++.la references, you can do:
grep -Ho '/usr/lib/libstdc++\.la' /usr/lib/lib*.la
Do whatever you prefer. I recommend (2) for now, you can still do (3) later if you hit more problems.
Many Thanks and Best Regards, Juan --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
On Wednesday 01 November 2006 02:07, Juan Erbes wrote:
I do: /usr/lib # sed -i 's/\/usr\/lib\/libstdc++.la//g' *.la It's right?
if you are not familiar with CLI commands, you might use Midnight Commander or some GUI application. ;-) In mc search for *.la files containing libstdc++ and put the result in a list and if there aren't too many, you can manually edit them. In KDE you may use KFileReplace to remove la libstdc++ references. Andras -- Quanta Plus developer - http://quanta.kdewebdev.org K Desktop Environment - http://www.kde.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andreas Hanke wrote:
Juan Erbes schrieb:
Why I know if one of the 320 files is referenced to libstdc++.la?
Only those from the PackMan repo and other non-SUSE repos have references to libstdc++.la, and only if they are build for distros < 10.2. Once there is a 10.2 PackMan repo with packages specifically built for 10.2, you don't need to worry any more.
What makes you think that ?
AFAIK no one at Packman (nor do I with my packages) removes the .la
files from the -devel packages, not even if they are for >= 10.2.
Referencing libstdc++.la (c|sh)ould be seen as a bug (at least I've been
bashed for filing that on bugzilla, or rather, for asking where the heck
libstdc++.la is on 10.2 ^^).
If it is, it should be discussed with those package maintainers at Packman.
cheers
- --
-o) Pascal Bleser http://linux01.gwdg.de/~pbleser/
/\\
On Wednesday 01 November 2006 12:18, Pascal Bleser wrote:
What makes you think that ?
AFAIK no one at Packman (nor do I with my packages) removes the .la files from the -devel packages, not even if they are for >= 10.2.
Referencing libstdc++.la (c|sh)ould be seen as a bug (at least I've been bashed for filing that on bugzilla, or rather, for asking where the heck libstdc++.la is on 10.2 ^^).
If it is, it should be discussed with those package maintainers at Packman.
You misunderstood. 10.1 has libstdc++.la and Packman packages built on 10.1 will have .la files referencing to this libstdc++.la. 10.2 doesn't have libstdc++.la, so if you have on your 10.2 system Packman packages built for 10.1 and you try to build applications from source you might run into this error. Once Packman packages will be built on 10.2, there won't be any problem as their .la files will not have any reference to libstdc++.la. Andras -- Quanta Plus developer - http://quanta.kdewebdev.org K Desktop Environment - http://www.kde.org
Pascal Bleser schrieb:
Only those from the PackMan repo and other non-SUSE repos have references to libstdc++.la, and only if they are build for distros < 10.2. Once there is a 10.2 PackMan repo with packages specifically built for 10.2, you don't need to worry any more.
What makes you think that ?
I'm convinced that you're not re-using old binary packages, but rebuilding everything from scratch. That makes me think that.
AFAIK no one at Packman (nor do I with my packages) removes the .la files from the -devel packages, not even if they are for >= 10.2.
You don't need to remove anything. Rebuilding everything is sufficient. I have just verified that rebuilding mpeg4ip on a clean 10.2 system with no old binary packages on it results in a libmp4v2.la that has no references to /usr/lib/libstdc++.la in it. Nothing had to be removed manually in order to achieve that. libtool asks for libstdc++.la only if one of the other .la files in the chain references it, and other .la files only reference it if libstdc++.la existed when the package was built. The conclusion is that cleanly rebuilding everything solves the problem. Given that libstdc++.la has been removed months ago and that there are 4000 source packages in the distribution which are all still building, and given that re-using old binary packages is broken anyway, I don't think that this breaks builds which wouldn't have been broken anyway until a build log shows it.
If it is, it should be discussed with those package maintainers at Packman.
I don't know what needs to be discussed here, re-using old binary packages is clearly broken, cannot work for all kinds of other reasons besides this one and we don't know if it has been discussed even with the package maintainers at SUSE. I doubt it, but don't know it. A package maintainer shouldn't even notice the absense of libstdc++.la. If I read and understand correctly what anyone can read on [opensuse-bugs] and [opensuse-commit], the usual practice is that a package maintainer changes whatever he likes and the others follow it by fixing their failed builds, if any. Maybe these discussions behind closed doors where the community is locked out don't exist at all. Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-factory+help@opensuse.org
participants (4)
-
Andras Mantia
-
Andreas Hanke
-
Juan Erbes
-
Pascal Bleser