rpmbuild: 32 bit Target auf 64bit Maschine "is incompatible with i386:x86-64 output"
![](https://seccdn.libravatar.org/avatar/4aa13bf567d76b2d00e530353b66b50c.jpg?s=120&d=mm&r=g)
Hallo, angeregt von dem netten c't Artikel wollte ich mal ein RPM selber bauen. Speziell an dem libv4l wollte ich eine Änderung vornehmen. Problem: rpmbuild --bb macht auf meiner x86_64 Platform ein richtiges x86_64rpm, ich brauche aber (für skype) ein 32bit RPM. Dafür kennt rpm das --target i686 (oder ähnliche). Das setzt aber nur den gcc auf -m32. Der Linker scheint davon nichts zu merken (siehe unten). Google meint, ich solle den Linker selber mit -m32 ausstatten. Das scheint mir aber bei einer fertigen .spec der falsche Weg zu sein. Müsste rpmbuild das nicht automatisch alles machen? Wo ist der Denkfehler? Hier die mmn wichtigsten Ausgaben: ../packages/SOURCES rpmbuild --bb --target i686 ../SPECS/libv4l.spec Building target platforms: i686 Building for target i686 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.RF8eOV [...] + make -j2 'CFLAGS=-O2 -g -m32 -march=i686 -mtune=i686 -fmessage-length=0 - D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind- tables'[...] /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `libv4lconvert.o' is incompatible with i386:x86-64 output [...] RPM build errors: Bad exit status from /var/tmp/rpm-tmp.H6PJEu (%build) -- Mit freundlichem Gruß Sebastian Koerner <mailto:s.koerner@online.de> Verschlüsseln? Gerne ! / Encrypt? Please! Schlüsselserver z.B. wwwkeys.de.pgp.net Fingerprint: FE55 C8EC 1758 D01D 6E26 DEFF AD08 5A7B 054A DA1D -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/d1fa340dd0cbb328b697a0d70a47c83f.jpg?s=120&d=mm&r=g)
Am Freitag 16 Oktober 2009 schrieb Sebastian Koerner:
Hallo,
angeregt von dem netten c't Artikel wollte ich mal ein RPM selber bauen. Speziell an dem libv4l wollte ich eine Änderung vornehmen.
Problem: rpmbuild --bb macht auf meiner x86_64 Platform ein richtiges x86_64rpm, ich brauche aber (für skype) ein 32bit RPM. Dafür kennt rpm das --target i686 (oder ähnliche).
ruf rpmbuild so auf: linux32 rpmbuild -bb (undsoweiter) bye, mh -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/4aa13bf567d76b2d00e530353b66b50c.jpg?s=120&d=mm&r=g)
Am Samstag 17 Oktober 2009 schrieb Mathias Homann:
ruf rpmbuild so auf:
linux32 rpmbuild -bb (undsoweiter)
Das bringt leider keine Verbesserung. make und cc erhalten zwar die -m32 flags, aber ld meldet immer noch `libv4lconvert.o' is incompatible with i386:x86-64 output Gruß Sebastian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/4aa13bf567d76b2d00e530353b66b50c.jpg?s=120&d=mm&r=g)
Am Freitag 16 Oktober 2009 schrieb Sebastian Koerner:
../packages/SOURCES rpmbuild --bb --target i686 ../SPECS/libv4l.spec Building target platforms: i686 Building for target i686 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.RF8eOV [...] + make -j2 'CFLAGS=-O2 -g -m32 -march=i686 -mtune=i686 -fmessage-length=0 - D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind- tables'[...] /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld:
Wieso nimmt rpmbuild hier eigentlich den /usr/lib64/gcc/x86_64-suse- linux/4.4//bin/ld ? Wo kann man das einstellen? Ich glaube, der /usr/bin/ld würde funktionieren. -- Mit freundlichem Gruß Sebastian Koerner <mailto:s.koerner@online.de> Verschlüsseln? Gerne ! / Encrypt? Please! Schlüsselserver z.B. wwwkeys.de.pgp.net Fingerprint: FE55 C8EC 1758 D01D 6E26 DEFF AD08 5A7B 054A DA1D -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/4aa13bf567d76b2d00e530353b66b50c.jpg?s=120&d=mm&r=g)
Am Sonntag 18 Oktober 2009 schrieb Sebastian Koerner:
Am Freitag 16 Oktober 2009 schrieb Sebastian Koerner:
../packages/SOURCES rpmbuild --bb --target i686 ../SPECS/libv4l.spec Building target platforms: i686 Building for target i686 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.RF8eOV [...] + make -j2 'CFLAGS=-O2 -g -m32 -march=i686 -mtune=i686 -fmessage-length=0 - D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind- tables'[...] /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld `libv4lconvert.o' is incompatible with i386:x86-64 output
Habe etwas in den DEV Foren gefunden http://forums.opensuse.org/programming-scripting/417255-building-32-bit-lib- package-x86-64-a.html CC='gcc -m32' CXX='g++ -m32' linux32 rpmbuild --bb --target=i586 package.spec Das überzeugt mich nicht, da ich nicht verstehe, warum es weder linux32 noch --target schaffen, die Compilerflags zu setzen, aber der build-lauf geht. Nun schauen wir mal, ob da auch wirklich eine 32bit lib entstanden ist ;-) -- Mit freundlichem Gruß Sebastian Koerner <mailto:s.koerner@online.de> Verschlüsseln? Gerne ! / Encrypt? Please! Schlüsselserver z.B. wwwkeys.de.pgp.net Fingerprint: FE55 C8EC 1758 D01D 6E26 DEFF AD08 5A7B 054A DA1D -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/b1966ffac861531a1d6494248e650a12.jpg?s=120&d=mm&r=g)
* Sebastian Koerner (s.koerner@online.de) [20091016 23:14]:
Problem: rpmbuild --bb macht auf meiner x86_64 Platform ein richtiges x86_64rpm, ich brauche aber (für skype) ein 32bit RPM. Dafür kennt rpm das --target i686 (oder ähnliche).
Meine dringende Empfehlung wäre, das Paket build zu installieren und dann das Kommando build zu verwenden. build baut eine chroot-Umgebung auf, wofür es die DVD benötigt.
Das setzt aber nur den gcc auf -m32. Der Linker scheint davon nichts zu merken (siehe unten).
Mit einem 'linux32 build' wäre alles kein Problem. BTW, opensuse-programming-de (sehr wenig Traffic) ist für solche Fragen die bessere Liste. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/4aa13bf567d76b2d00e530353b66b50c.jpg?s=120&d=mm&r=g)
Am Dienstag 20 Oktober 2009 schrieb Philipp Thomas:
* Sebastian Koerner (s.koerner@online.de) [20091016 23:14]:
Problem: rpmbuild --bb macht auf meiner x86_64 Platform ein richtiges x86_64rpm, ich brauche aber (für skype) ein 32bit RPM. Dafür kennt rpm das --target i686 (oder ähnliche).
Meine dringende Empfehlung wäre, das Paket build zu installieren und dann das Kommando build zu verwenden. build baut eine chroot-Umgebung auf, wofür es die DVD benötigt.
Mit einem 'linux32 build' wäre alles kein Problem. OK. Habe ich gerade probiert. Der will aber erst mal eine beeindruckende Liste von packages. Vmtl. die 32bit RPMS. Lies: Zunächst Download der 11.2 32bit Version...
BTW, opensuse-programming-de (sehr wenig Traffic) ist für solche Fragen die bessere Liste. Bin schon fast weg ;-) Möchte den Thread aber ungern hier zerreißen.
Gruß Sebastian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/638c5f9b9a41e53d4663197a58261c49.jpg?s=120&d=mm&r=g)
Hallo, Am Mit, 21 Okt 2009, Sebastian Koerner schrieb:
Am Dienstag 20 Oktober 2009 schrieb Philipp Thomas:
Meine dringende Empfehlung wäre, das Paket build zu installieren und dann das Kommando build zu verwenden. build baut eine chroot-Umgebung auf, wofür es die DVD benötigt.
Mit einem 'linux32 build' wäre alles kein Problem. OK. Habe ich gerade probiert. Der will aber erst mal eine beeindruckende Liste von packages. Vmtl. die 32bit RPMS. Lies: Zunächst Download der 11.2 32bit Version...
Deswegen die DVD (oder ein Image davon), dann holt build sich das was noch aktuell ist von dort. Hab jetzt aber nicht im Kopf wie man das konfiguriert und kann grad nicht nachschauen. Achso: heruntergeladene Pakete werden auch lokal zwischengespeichert und wiederverwendet. Zum Ursprungsproblem: da sollte man sich im Log mal angucken, wie das relevante .o generiert wird ... Aber das gehört echt auf -programming-de. Bitte F'up folgen ... -dnh -- You did wha... oh _dear_.... -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1abd30f375aa8ba047cc3b11160f2ce3.jpg?s=120&d=mm&r=g)
Am Mi Oktober 21 2009 glaubte David Haller zu wissen:
Bitte F'up folgen ...
Welchem der nicht vorhandenen? *g* flo -- [...]die meisten wollen ihren geistigen Brechdurchfall nach dag° abkippen, da faellst Du erst recht nicht mehr auf. [Ausgerechnet Großanlieferer Frank Toennes in dag°] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/638c5f9b9a41e53d4663197a58261c49.jpg?s=120&d=mm&r=g)
Hallo, Am Don, 22 Okt 2009, Florian Gross schrieb:
Am Mi Oktober 21 2009 glaubte David Haller zu wissen:
Bitte F'up folgen ...
Welchem der nicht vorhandenen? *g*
*patsch* Was am 'Reply-To:'-Header ist mißverständlich? F'up2p! -dnh, zugebend, daß er den Mail-Followup-To hätte ändern oder löschen sollen, aber der wird halt vom MUA eingfügt, und an den hatte ich einfach nicht gedacht -- "Backwards compatibility is nice, but preserving every undocumented quirk that nobody sane would use... Sorry, but we really need an addition to errno.h: EBITEME. Exactly for such cases." -- Alexander Viro on l-k -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
David Haller
-
Florian Gross
-
Mathias Homann
-
Philipp Thomas
-
Sebastian Koerner