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

Re: Building rpms on AMD64



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


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