[opensuse-buildservice] 32bit packages in x86_64, for CentOS
How might I specify in a specfile that I want to be able to use gcc -m32, but in an x86_64 repo. Is such a thing even possible? This is for CentOS 5. -- Jon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Mar 16, 2010 at 1:27 PM, Jon Nelson
How might I specify in a specfile that I want to be able to use gcc -m32, but in an x86_64 repo. Is such a thing even possible? This is for CentOS 5.
if it's a flag to the compiler, then in the %configure line (assuming you're using autoconf) then add %ifarch x86_64 %configure CXXFLAGS=-m32 CFLAGS=-m32 %else %configure %endif -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Mar 16, 2010 at 7:41 PM, Douglas Hubler
On Tue, Mar 16, 2010 at 1:27 PM, Jon Nelson
wrote: How might I specify in a specfile that I want to be able to use gcc -m32, but in an x86_64 repo. Is such a thing even possible? This is for CentOS 5.
if it's a flag to the compiler, then in the %configure line (assuming you're using autoconf) then add
%ifarch x86_64 %configure CXXFLAGS=-m32 CFLAGS=-m32 %else %configure %endif
Upon reading this, I realize - I asked the wrong question! Your answer is perfect, but I had already solved that problem. The problem is, when I use -m32 gcc can't (on x86_64) find 32 bit support - presumably due to missing packages. Which packages do I specify? CentOS uses the (horrible, IMO) same-name-different-arch system which causes no end of confusion and trouble. I want to specify, "I need glibc but for 32 bit" but I don't seem to be able to specify it. The .i386 glibc package doesn't even provide glibc(x86-32). Thoughts? -- Jon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Mar 16, 2010 at 8:47 PM, Jon Nelson
I want to specify, "I need glibc but for 32 bit" but I don't seem to be able to specify it. The .i386 glibc package doesn't even provide glibc(x86-32). Thoughts?
are you saying this is a general glibc challenge, or something specific to OBS systems? -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wed, Mar 17, 2010 at 12:07:53AM -0400, Douglas Hubler wrote:
On Tue, Mar 16, 2010 at 8:47 PM, Jon Nelson
wrote: I want to specify, "I need glibc but for 32 bit" but I don't seem to be able to specify it. The .i386 glibc package doesn't even provide glibc(x86-32). Thoughts?
are you saying this is a general glibc challenge, or something specific to OBS systems?
Not sure if Centos even allows that. Why do you want to do that btw (and what exactly are you trying to achieve), and why not just build in i586 mode? Ciao, Marcus -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wednesday 17 March 2010 01:45:23 am Marcus Meissner wrote:
On Wed, Mar 17, 2010 at 12:07:53AM -0400, Douglas Hubler wrote:
On Tue, Mar 16, 2010 at 8:47 PM, Jon Nelson
wrote: I want to specify, "I need
glibc but for 32 bit" but I don't seem to be able to specify it. The .i386 glibc package doesn't even provide glibc(x86-32). Thoughts?
are you saying this is a general glibc challenge, or something specific to OBS systems?
Well, on a CentOS system (or any Red Hat derived system), the problem is that all 32-bit support is added by adding the .i386 package. As the package itself is a 32-bit arch package, there isn't a glibc(x86-32) dependency; everything is already assumed to be x86-32. SuSE's (better, IMO) practice of having a 64-bit arch package with 32-bit contents necessitates the glibc(x86-32) provides
Not sure if Centos even allows that.
As far as I'm aware CentOS (and Red Hat -derived distros in general), the
problem is that '32-bit' devel packages are provided as a 32-bit arch package.
In contrast, SuSE distros use something like 'glibc-32bit'
So you'd see the following:
Red Hat/Centos/Fedora:
glibc-<foo>.i686.rpm
glibc-<foo>.x86_64.rpm
And SuSE distros:
glibc-<foo>.x86_64.rpm
glibc-<foo>-32bit.x86_64.rpm
The problem is that with the Red Hat way, you can't say
Requires: glibc-<foo>-32bit
because there is no Why do you want to do that btw (and what exactly are you trying to
achieve), and why not just build in i586 mode? This is sorta like asking why SuSE would want to provide
'glibc-32bit.<version>.x86_64.rpm' packages, isn't it?
Some 64-bit software includes 32-bit only components. Cluster administrative
software is one useful case where you'd want to provide both arches - that way
you can provision out both 64 and 32 bit nodes, and have the management
binaries all packaged up nicely. (and have a "mgmt-32bit" packageas the end
product for the 32 bit binaries/libs).
Other cases are when the software package itself does both 32 and 64 bit
compiles, and the packager doesn't want to mess too much with the build
internals.
Besides - simply building 32-bit stuff solely on i586 is what CentOS (and Red
Had based distros) do-- and that's what is causing the problem to begin with,
isn't it?
I seem to remember doing the 32-bit builds with 64-bit arch packages using OBS
before, but I can't remember how I did it in the past. (And it was a long
time ago, on a private machine I no longer have access to...)
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thu, Mar 18, 2010 at 2:58 PM, Troy Telford
On Wednesday 17 March 2010 01:45:23 am Marcus Meissner wrote:
On Wed, Mar 17, 2010 at 12:07:53AM -0400, Douglas Hubler wrote:
On Tue, Mar 16, 2010 at 8:47 PM, Jon Nelson
wrote: I want to specify, "I need
glibc but for 32 bit" but I don't seem to be able to specify it. The .i386 glibc package doesn't even provide glibc(x86-32). Thoughts?
are you saying this is a general glibc challenge, or something specific to OBS systems?
Well, on a CentOS system (or any Red Hat derived system), the problem is that all 32-bit support is added by adding the .i386 package. As the package itself is a 32-bit arch package, there isn't a glibc(x86-32) dependency; everything is already assumed to be x86-32.
SuSE's (better, IMO) practice of having a 64-bit arch package with 32-bit contents necessitates the glibc(x86-32) provides
I think that the SUSE (and Debian?) approach is clearly superior to the CentOS/RedHat approach, but I had a problem to solve and I tried to solve it. Since I can't solve it this way, I'm going to punt. Thanks for the help confirming my suspicions! -- Jon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (4)
-
Douglas Hubler
-
Jon Nelson
-
Marcus Meissner
-
Troy Telford