On 04/04/2012 11:33 PM, Brian McGrew wrote:
I'm rebuilding much of the gnu toolchain for some development testing I'm working. GMP, MPC, MPFR, PPL, as well as many others. I need to be able to have both 32 and 64 bit versions of these libraries avilable on the system, in more or less the same path (/toolchain/lib, /toolchain/lib64).
Generically speaking, is there an easy way to build both 32 and 64 bit versions a the same time??? Or, more specifically, what is the best way to get both versions built???
CentOS 6.2 on a Dell 1900 with Xeon 5130 CPU's.
After a few more hours of digging, I believe what I'm wanting is multilib???
Is there a way to get a 32 and 64 bit build (multilib?) in one pass? If not, what is the easiest way to do this?
Your questions are not making sense to me ...
You talk about /toolchain/lib and /toolchain/lib64 ... no idea what that is or what you are trying to build ... or what you are trying to build with. I will assume you want to build some 32 and 64 bit packages on the same machine with GCC on CentOS 6.2
IF you want to build items using the CC variable and if you are using gcc then you can install both glibc-devel.i686 and glibc-devel.x86_64 and IF you pass in the proper -m 32 or -m 64 flags with gcc you can compile either i[3,4,5,6]86 (-m 32) or x86_64 (-m 64) items.
If you are talking about compiling 32 bit programs on x86_64 machine, then you need to install these i686 packages on your x86_64 machine:
yum install glibc.i686 libstdc++-devel.i686 glibc-devel.i686 gcc make autoconf automake16
You should also add this line to your .rpmmacros file in the home directory of the user you will be compiling things under (and I also add it to the root user's home directory):
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
After adding that line, you can issue the command:
rpm -qa | grep i[3,4,5,6]86
with that, you can see what 32 bit packages are installed on your machine.
If you have multi-lib libraries, I personally would use something like mock to build chroots that contain only the packages you need to build the things you want to build. This allows you to keep your machine with very minimal packages installed and allows you to put development libraries in the chroots. Here is info on mock and sandboxes:
http://fedoraproject.org/wiki/Extras/MockTricks
(the epel repo has mock in it)