gcc-32-bit-compile-on-64-bit-rhel

minimal example

============================================================
title : gcc-32-bit-compile-on-64-bit-rhel.txt
author: Neil Rieck (Waterloo, Ontario, Canada)
edit  : 2022-07-04
legend: <ur> (user response)
        <sr> (system response)
============================================================
(can we run both 32 + 64 bit apps on this platform?)
<ur> lscpu <sr> Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit (YES) Byte Order: Little Endian ...snip... $ ------------------------------------------------------------ (64-bit native build)
<ur> gcc hello_linux_world.c -o hello_linux_world64 <sr> $ ------------------------------------------------------------ (32-bit build which fails)
<ur> gcc -m32 hello_linux_world.c -o hello_linux_world32 In file included from /usr/include/features.h:399:0, from /usr/include/stdio.h:27, from hello_linux_world.c:1: /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory # include <gnu/stubs-32.h> ^ compilation terminated. ------------------------------------------------------------ (install 32-bit development libs)
<ur> sudo yum install glibc-devel.i686 \
libgcc.i686 \
libstdc++-devel.i686 \
ncurses-devel.i686 <sr> ...verbiage...
$ ------------------------------------------------------------ (32-bit build which now works)
<ur> gcc -m32 hello_linux_world.c -o hello_linux_world32 <sr> $ ------------------------------------------------------------ (testing)
<sr> $ <ur> gcc hello_linux_world.c -o hello_linux_world64 # native <sr> $ <ur> gcc -m32 hello_linux_world.c -o hello_linux_world32 # optional <sr> $ <ur> ls -la hello* <sr> -rwxr-xr-x. 1 neil admgrp 7264 Aug 6 10:32 hello_linux_world32 -rwxr-xr-x. 1 neil admgrp 8424 Aug 6 10:32 hello_linux_world64 -rw-r--r--. 1 neil admgrp 1258 Aug 6 10:32 hello_linux_world.c $ <ur> ./hello_linux_world32 one two <sr> Hello World from program: ./hello_linux_world32 cli argc 3 cli arg 0 ./hello_linux_world32 cli arg 1 one cli arg 2 two adios $ <ur> ./hello_linux_world64 three four <sr> Hello World from program: ./hello_linux_world64 cli argc 3 cli arg 0 ./hello_linux_world64 cli arg 1 three cli arg 2 four adios $

Better Example

# sudo yum grouplist                                 # view choices
# sudo yum -y groupinstall 'Development Tools'       # installs x86_64 support
# sudo yum -y groupinstall 'Compatibility Libraries' # adds full i686 support

left hand Back to Linux Demo Index
left hand Back to Real-world Linux Problems + Solutions
home Back to Home
Neil Rieck
Waterloo, Ontario, Canada.