0

I downloaded the python src rpm in order to build the 32-bit version of the tkinter package. This was on a 64 bit host (latest centos 6). It looks like it failed to add -m32 in a couple cases...

% rpm -Uvh python-2.6.6-66.el6_8.src.rpm
% cd ~/rpmbuild/SPECS
% rpmbuild --target i686 -bb python.spec
.
.
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv   -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv   -DNDEBUG  -I. -IInclude -I./Include -I/usr/lib/libffi-3.0.5/include   -fPIC -DPy_BUILD_CORE  -c ./Modules/symtablemodule.c -o Modules/symtablemodule.o
gcc -pthread -shared  Modules/readline.o  -lreadline -ltermcap  -o Modules/readline.so
gcc -pthread -shared  Modules/arraymodule.o   -o Modules/arraymodule.so
Modules/readline.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [Modules/readline.so] Error 1
make: *** Waiting for unfinished jobs....
Modules/arraymodule.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [Modules/arraymodule.so] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.48OUTZ (%build)

Did I not use the proper method to tell rpmbuild to build a 32-bit package?

  • 2
    It looks like you told rpmbuild to do a i686 package, but it did not find suitable development files: Modules/readline.o: could not read symbols: File in wrong format. Do you have the i686 development packages installed for all of the dependencies? – GracefulRestart May 11 '18 at 18:14
  • rpmbuild did not complain about any missing dependencies. It's possible that building the 32-bit version on 64-bit "fools" the dependency checker. That is, perhaps it detects all the listed dependencies, but it finds the 64 bit flavor and doesn't think to look for the 32 bit flavor. Or a dependency is not listed in the source rpm build. If I figure out what's missing (and why it was not detected), I'll update the story here. – Juan May 28 '18 at 13:22
  • The rpmbuild command you ran would not download dependencies for you. You specified to build using 32 bit (i686) package architecture, you need to make sure that you have all of the 32 bit dependent packages installed first before you run rpmbuild. – GracefulRestart May 29 '18 at 19:46
  • Usually the source rpm specifies all its dependencies. And if they are not installed, rpmbuild fails early and shows which dependencies are missing. I know it does not download them for you. In this case, it did not complain about any missing dependency. – Juan Jun 24 '18 at 15:13
0

Missing 32-bit development packages needed for the build.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.