Mailinglist Archive: opensuse-buildservice (170 mails)

< Previous Next >
Re: [opensuse-buildservice] openSUSE_10.3 x86_64: bz2 32bit devel files missing
  • From: Werner Hoch <werner.ho@xxxxxx>
  • Date: Tue, 11 Dec 2007 19:44:31 +0100
  • Message-id: <200712111944.31416.werner.ho@xxxxxx>
Hi Ladislav,

sorry for the late response.

On Mittwoch, 5. Dezember 2007, Ladislav Michnovič wrote:
2007/12/3, Werner Hoch <werner.ho@xxxxxx>:
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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups