Re: Multiarch question

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

 



In regard to: Multiarch question, Sean Dilda said (at 5:01pm on Feb 25, 2005):

I have a question on how multiarch rpm is supposed to work. I'm told by those who understand rpm better than me, that if you try to install the x86 and x86_64 versions of a package on a x86_64 box that they will not conflict.
And that if they do conflict, there's a packaging bug.


I have a case where the i386 and x86_64 versions of an rpm have files that conflict with each other, but I don't believe there's a packaging bug. As such, I'd like some clarification on how multiarch packages should work.

The package in question is for mpich. One of the files in this package is a shell script, /usr/bin/mpicc. This shell script contains a reference to
where the mpich libraries are installed (%{_libdir}). The i386 package
has a line that reads:
libdir=/usr/lib
and the x86_64 version has a line that reads:
libdir=/usr/lib64


Since they're different, the packages have different md5sums, and thus conflict.

You can practically hear the crickets chirping in the background can't you? I think your question hasn't generated any discussion because many people don't know what the best approach is. It's not an easy problem.

In the specific case you're illustrating, is it possible to have a
functioning mpicc with support for both ABIs installed?  I mean, if libdir
is hardcoded to either the 32 bit ABI version or the 64 bit ABI version
right in the script, you really only have a choice of having one or the
other flavor (ABI) working at once, correct?

mpicc would be more packaging-friendly if it instead sourced a
configuration file that set these, and if one could select which ABI to
compile against using a command-line flag to mpicc, similar to how
ABI-selection is done with most compilers.

Another case is that mpich customizes some header files for the platform its on. As such, I get some differences like this:
-#define MPI2CPP_ATTR long
+#define MPI2CPP_ATTR int


and:
-      PARAMETER (MPI_OFFSET_KIND=4)
+      PARAMETER (MPI_OFFSET_KIND=8)

Packages that hardcode sized types like this are not very multi-ABI friendly, and are going to present packaging challenges no matter what packaging system you use.

Or if you should just separate out the shared libs into their own package and not worry about installing the other 32-bit packages on 64-bit machines?

That seems to be the approach that commercial vendors are taking with their packaging systems, for platforms that support multiple ABIs.

Tim
--
Tim Mooney                              mooney@xxxxxxxxxxxxxxxxxxxxxxxxx
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164

_______________________________________________
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