Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1359538 - gcc.i686 -m32 fails to compile any .c file: cc1 is missing
Summary: gcc.i686 -m32 fails to compile any .c file: cc1 is missing
Keywords:
Status: CLOSED DUPLICATE of bug 1359536
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: 24
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-07-24 19:44 UTC by John Reiser
Modified: 2016-07-25 07:21 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-25 07:21:09 UTC


Attachments (Terms of Use)

Description John Reiser 2016-07-24 19:44:38 UTC
Description of problem: Using the .i686 package of gcc, "gcc -m32" fails to compile any .c file.


Version-Release number of selected component (if applicable):
gcc-6.1.1-3.fc24.i686


How reproducible:
every time

Steps to Reproduce:
1. dnf remove gcc.x86_64
2. dnf install gcc.i686
3. gcc -m32 hello.c

Actual results:
gcc: error trying to exec 'cc1': execvp: No such file or directory


Expected results: success


Additional info:
$ strace -f -e trace=execve gcc -m32 foo.c
execve("/usr/bin/gcc", ["gcc", "-m32", "foo.c"], [/* 49 vars */]) = 0
strace: [ Process PID=2871 runs in 32 bit mode. ]
strace: Process 2872 attached
[pid  2872] execve("/usr/local/bin/cc1", ["cc1", "-quiet", "foo.c", "-quiet", "-dumpbase", "foo.c", "-m32", "-mtune=generic", "-march=i686", "-auxbase", "foo", "-o", "/tmp/ccx2it1b.s"], [/* 52 vars */]) = -1 ENOENT (No such file or directory)
[pid  2872] execve("/usr/local/sbin/cc1", ["cc1", "-quiet", "foo.c", "-quiet", "-dumpbase", "foo.c", "-m32", "-mtune=generic", "-march=i686", "-auxbase", "foo", "-o", "/tmp/ccx2it1b.s"], [/* 52 vars */]) = -1 ENOENT (No such file or directory)
[pid  2872] execve("/usr/bin/cc1", ["cc1", "-quiet", "foo.c", "-quiet", "-dumpbase", "foo.c", "-m32", "-mtune=generic", "-march=i686", "-auxbase", "foo", "-o", "/tmp/ccx2it1b.s"], [/* 52 vars */]) = -1 ENOENT (No such file or directory)
[pid  2872] execve("/usr/sbin/cc1", ["cc1", "-quiet", "foo.c", "-quiet", "-dumpbase", "foo.c", "-m32", "-mtune=generic", "-march=i686", "-auxbase", "foo", "-o", "/tmp/ccx2it1b.s"], [/* 52 vars */]) = -1 ENOENT (No such file or directory)
[pid  2872] execve("/home/jreiser/.local/bin/cc1", ["cc1", "-quiet", "foo.c", "-quiet", "-dumpbase", "foo.c", "-m32", "-mtune=generic", "-march=i686", "-auxbase", "foo", "-o", "/tmp/ccx2it1b.s"], [/* 52 vars */]) = -1 ENOENT (No such file or directory)
[pid  2872] execve("/home/jreiser/bin/cc1", ["cc1", "-quiet", "foo.c", "-quiet", "-dumpbase", "foo.c", "-m32", "-mtune=generic", "-march=i686", "-auxbase", "foo", "-o", "/tmp/ccx2it1b.s"], [/* 52 vars */]) = -1 ENOENT (No such file or directory)
gcc: error trying to exec 'cc1': execvp: No such file or directory
[pid  2872] +++ exited with 255 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2872, si_uid=1000, si_status=255, si_utime=0, si_stime=0} ---
+++ exited with 1 +++

Comment 1 John Reiser 2016-07-24 19:47:06 UTC
$ rpm -ql gcc-6.1.1-3.fc24.i686 | grep bin
/usr/bin/c89
/usr/bin/c99
/usr/bin/cc
/usr/bin/gcc
/usr/bin/gcc-ar
/usr/bin/gcc-nm
/usr/bin/gcc-ranlib
/usr/bin/gcov
/usr/bin/gcov-tool
/usr/bin/i686-redhat-linux-gcc
/usr/bin/i686-redhat-linux-gcc-6.1.1
/usr/lib/gcc/i686-redhat-linux/6.1.1/include/clwbintrin.h
$

Comment 2 Jonathan Wakely 2016-07-25 07:21:09 UTC
(In reply to John Reiser from comment #0)
> Steps to Reproduce:
> 1. dnf remove gcc.x86_64
> 2. dnf install gcc.i686
> 3. gcc -m32 hello.c

Don't do that.

Ideally gcc.i686 should not be available in the 64-bit repo, to prevent people making this mistake. Just use gcc.x86_64 which works fine for compiling 32-bit exexutables.

*** This bug has been marked as a duplicate of bug 1359536 ***


Note You need to log in before you can comment on or make changes to this bug.