Hi Ladislav, sorry for the late response. On Mittwoch, 5. Dezember 2007, Ladislav Michnovič wrote:
2007/12/3, Werner Hoch
: Hi all,
I'm trying to build verilog for openSUSE 10.3 x86_64 with 32-bit support.
The 32-bit devel library is missing.
I'm not sure if your way is a good idea. Maybe yes, but... There is no 32bit devel library for 64bit arch because all packages should use 64bit. If you need a 32 bit package (It is necessary sometimes), install it from 32bit distribution. So you can install, if you really need that from i586 repository. It would also take a correct dependencies with itself. Remember that you can have only one devel package of a library in system. This is a guarantee that system will use a correct libfoo.so that you meant to use and you have installed it wittingly. So you can prefer a 32bit libfoo-devel.rpm
from i586 repository for chroot environment, but the package will not
be able to use 64bit foo library for compilation. If I understand you correctly what you really want, the program have separate 32 bit and 64 bit runtime binaries. If yes, you have to create a own 32bit *.so file and name it e.g. lib32foo.so and make it to point to 32bit library. *.so file is only a symbolic link which tells the compilator which library you want to use for compiling. So install a 32bit libbz2 rpm. Add manually in chroot a symlink to it and name it differently (e.g libbz2-32bit.so). Then patch Makefile to use libbz2-32bit.so when it's appropriate.
Anyone knows why there are no devel files for bz2 32-bit? (/usr/lib/libbz2.a, /usr/lib/libbz2.so, ...?)
They are in devel rpm in i586 distribution. But you can not have installed both 32 and 64 bit devel package of the same library.
Why? It seems that the gcc or maybe it's ld can make the right choice.
Can I build that bz2-32bit-devel files in my home repo and use them to build the verilog package.
Yes, this is possible. See above.
Can I use the original libbz2-1-32bit-1.0.4-42.x86_64.rpm runtime library even if I haven't used it for building?
The question is if the built program will use it. The answer is no.
I don't understand that sentence. I've inserted the bz2 32bit devel file with the folloging steps. 1. downloaded the i586 devel rpm: libbz2-devel-1.0.4-42.i586.rpm 2. extracted the libbz2.a file and added that file to the repo 3. prepared the package to use that libbz2.a file: mkdir bz2lib cp ../../SOURCES/libbz2.a bz2lib/ ln -s /lib/libbz2.so.1.0.4 bz2lib/libbz2.so 4. added a patch to a Makefile.in file to use that library file. -LDFLAGS = @LDFLAGS@ +LDFLAGS = -L../bz2lib @LDFLAGS@ After that I was able to build the 32bit binaries. Improvement for 2.: add the rpm to the repo and use rpm2cpio to extract the required file. Any comments, suggestions? Regards Werner --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org