Building rpms on AMD64
Per Steinar Iversen
PerSteinar.Iversen at adm.hio.no
Sat Jan 15 14:32:00 UTC 2005
On Fri, 14 Jan 2005, seth vidal wrote:
> On Fri, 2005-01-14 at 12:36 -0500, John Ellson wrote:
>> Nick Bargnesi wrote:
>>
>>> If I were you - I would check to make sure you also do not have 32-bit
>>> X libraries installed. Part of the full installation you selected
>>> installs compat packages allowing you to build for different
>>> platforms. If removing the 32-bit libraries helps, send the solution
>>> back to the user list.
>>>
>>>
>>
>> Related to this. How does one go about removing 32bit libraries with rpm?
>>
>> How do you selectively remove just i386 rpms? I couldn't find any
>> option in "rpm --help"
>> that selects just the rpms of a given architecture.
>>
>
> with rpm you can do:
>
> rpm -e name.arch
>
> with yum you can do the same:
>
> yum remove name.arch
Yet another problem: On a system with dual x86_64 and i386 libraries many
rpms are installed by default for both architectures, an example is
mozilla, the default install of FC3 contains these:
mozilla-1.7.3-17.x86_64.rpm
mozilla-chat-1.7.3-17.x86_64.rpm
mozilla-devel-1.7.3-17.x86_64.rpm
mozilla-dom-inspector-1.7.3-17.x86_64.rpm
mozilla-js-debugger-1.7.3-17.x86_64.rpm
mozilla-mail-1.7.3-17.x86_64.rpm
mozilla-nspr-1.7.3-17.i386.rpm
mozilla-nspr-1.7.3-17.x86_64.rpm
mozilla-nspr-devel-1.7.3-17.x86_64.rpm
mozilla-nss-1.7.3-17.i386.rpm
mozilla-nss-1.7.3-17.x86_64.rpm
mozilla-nss-devel-1.7.3-17.x86_64.rpm
mozplugger-1.6.2-1.x86_64.rpm
Here mozilla-nspr and mozilla-nss are for both architectures - the problem
is: If one builds updates for x86_64 how does one easily determine what
packages that also must be created for i386?
I have problems creating the i386 packages anyway, for example:
# setarch i386 rpmbuild --target i386 --rebuild mozilla-1.7.5-3.src.rpm
Goes like this:
Installing mozilla-1.7.5-3.src.rpm
Building target platforms: i386
Building for target i386
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.33053
...lines deleted...
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.60269
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd mozilla
+ LANG=C
+ export LANG
+ unset DISPLAY
+ /bin/rm -f ./configure
+ /usr/bin/autoconf-2.13
+ '[' -x /usr/bin/getconf ']'
++ getconf _NPROCESSORS_ONLN
+ CPUS=1
+ test x1 = x -o x1 = x0
+ OPTFLAGS=-O2
+ XCFLAGS=-g
+ CFLAGS=-g
+ CXXFLAGS=-g
+ BUILD_OFFICIAL=1
+ MOZILLA_OFFICIAL=1
+ ./configure --prefix=/usr --libdir=/usr/lib64 --enable-optimize=-O2
--disable-debug --with-default-mozilla-five-home=/usr/lib64/mozilla-1.7.5
--disable-strip-libs --disable-tests --enable-xinerama
--enable-nspr-autoconf --enable-extensions=default,irc
--without-mng --enable-crypto --disable-xprint
--without-system-nspr --with-system-zlib --with-system-png
--with-system-jpeg --enable-default-toolkit=gtk2 --disable-freetype2
--enable-xft --enable-pango --mandir=/usr/share/man
...lines deleted...
gmake[6]: Entering directory `/usr/src/redhat/BUILD/mozilla/xpcom/reflect/xptcall/src/md/unix'
xptcinvoke_gcc_x86_unix.cpp
c++ -o xptcinvoke_gcc_x86_unix.o -c -DOSTYPE=\"Linux2.6.10-1\" -DOSARCH=\"Linux\" -DEXPORT_XPTC_API -I../../../../../../dist/include/xpcom -I../../../../../../dist/include -I/usr/src/redhat/BUILD/mozilla/dist/include/nspr -I./../.. -I/usr/X11R6/include -fPIC -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -g -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O2 -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h -Wp,-MD,.deps/xptcinvoke_gcc_x86_unix.pp xptcinvoke_gcc_x86_unix.cpp
{standard input}: Assembler messages:
{standard input}:16: Error: suffix or operands invalid for `push'
{standard input}:26: Error: suffix or operands invalid for `push'
{standard input}:32: Error: suffix or operands invalid for `pop'
gmake[6]: *** [xptcinvoke_gcc_x86_unix.o] Error 1
gmake[6]: Leaving directory `/usr/src/redhat/BUILD/mozilla/xpcom/reflect/xptcall/src/md/unix'
Clearly something triggers setup for the wrong platform in this case, at
configure looks in the lib64 directories.
This "works" though:
# rpmbuild --target i386 --rebuild mozilla-1.7.5-3.src.rpm
However the resulting rpm is not okay at all:
# rpm -qpl mozilla-nspr-1.7.5-3.i386.rpm
/usr/lib64/libnspr4.so
/usr/lib64/libplc4.so
/usr/lib64/libplds4.so
Life on the combined x86_64 / i386 architecture seems a bit confusing to me so far :-(
-psi
More information about the devel
mailing list