Re: Problem with 64 bit library[Scanned]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Arif Ali wrote:
> I am trying to build an RPM for one of the applications that we ship
> with the customer builds, but the RPM fails to build although I have
> tried the same thing before and it has worked.

You have supplied an opening statement that many people say but is
rarely true.  "I didn't change anything.  It worked before."  :-)

> I have a spec file which takes variables to with 32bit and 64 bit
> builds. When I specify the 64 bit build it expects that one of the files
> to be in lib64. But the application by default includes then in lib. Is
> there anyway we can force it to expect in lib?

Your description is very vague.  It would be better if you supplied
examples of the problem.

> Below is the error message that I get:
> 
> + /usr/lib/rpm/brp-lib64-linux
> sf@xxxxxxx <mailto:sf@xxxxxxx>: if you find problems with this script, 
> drop me a note
> /var/tmp/mpich-buildroot/opt/mpich/gcc/64/lib/shared/libmpich.so:
> file format elf64-x86-64
> /var/tmp/mpich-buildroot/opt/mpich/gcc/64/lib/shared/libmpich.so: should
> be in */lib64
> error: Bad exit status from /var/tmp/rpm-tmp.18556 (%install)

Here is a general summary of the lib64 problem.  In order to support a
special case installation of two architectures (biarch support) where
the native system is a 32-bit system where normally lib would hold
32-bit versions of libraries, the-powers-that-be created lib64 to hold
the 64-bit versions of libraries.  This way both 32-bit and 64-bit
code can share on the same machine.  (Unfortunately there are several
problems with this simplistic hack.  The multiarch model works to
solve the problems with the special case biarch model.  Search the web
for it if you are interested in that.)

On a 32/64 biarch system all projects compiling in 64-bit mode must
accomodate relocating the lib directory from lib to lib64.  If the
project fails to do that then it will install libraries in lib.  But
lib in that case is the wrong directory.  That appears to be your
problem in the above.

If the project uses the GNU autotools and the rpm spec file uses the
"%configure" macro then the --libdir options will be supplied to
redirect lib to lib64.  Look in /usr/lib/rpm/macros for details.
Other configurations will need to be considered individually.

Having said all of that it could be that the script you are running
"brp-lib64-linux" has a check that is too simplistic looking for this
problem.  In which case it provided a problem reporting address.  Send
a problem report to that address.  If that is the problem then update
the script or don't use it.

> I can provide the spec file if required.

That would be good.  Large files are discarded by the mailing list so
if you don't see it on the mailing list then you will need to split up
the file and send it in smaller pieces.

Bob

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux