Bug 40922 - Multilib for the gcc 4.4.x branch no longer works
Summary: Multilib for the gcc 4.4.x branch no longer works
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 4.4.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-31 03:36 UTC by Peter Anastos
Modified: 2009-09-03 21:46 UTC (History)
1 user (show)

See Also:
Host: x86_64-w64-mingw32, x86_64-unknown-linux-gnu, i686-pc-cygwin, li
Target: x86_64-w64-mingw32
Build: x86_64-w64-mingw32, x86_64-unknown-linux-gnu, i686-pc-cygwin, li
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Anastos 2009-07-31 03:36:12 UTC
One day, I built gcc 4.4.1 prerelease, with normal multilib. The next day, I realized I forgot to add Ada, and all of a sudden multilib failed with the exact same configuration. At the time, I didn't think too much of it and don't remember if anything else happened between the two builds, but it is likely I updated Binutils between those two exact same builds. I have not been getting it to work at all anymore, and I thought it was unique to Cygwin where I couldn't get 4.4.x Multilib for as far as I can remember.

I went back to the build that was building in Multilib, and it died with no rule to make 32/zlib. GCC will accept the -m32 flag, but the 64-bit assembler is used. The 32 dir multi-versions are not created, as if multilib was disabled.

This is highly likely related to Binutils. However, whether it is a bug in Binutils, or a change in Binutils that caused a bug in 4.4.x to surface, I do not know. I will give you configuration lines (just one time), but believe me, they are not relevant. --enable-multilib wasn't even necessary for gcc, only Binutils. The working multilib version of 4.4.1 I have proves it (via -v.)

This bug applies 100% to Linux x86_64 as it does to Windows x64. It has nothing to do with the Mingw-w64 crt, as it occurs before fresh installation of crt, by gcc in make all-gcc (after doing that, building a new crt reveals the incorrect 64-bit assembler.)

Binutils (last tried yesterday's update): ../configure --target=x86_64-w64-mingw32 --enable-multilib --enable-targets=x86_64-w64-mingw32,i686-w64-mingw32 --with-sysroot=/mingw64 --prefix=/mingw64 --with-ppl=/usr --with-cloog=/usr

GCC 4.4.1 Release: (small testcase)
../configure --target=x86_64-w64-mingw32 --enable-targets=all --with-sysroot=/mingw64 --prefix=/mingw64 --with-ppl=/usr --with-cloog=/usr --enable-languages=c,c++

Thanks, I will pass this same report to Binutils.
Comment 1 Peter Anastos 2009-07-31 03:47:38 UTC
On Binutils I thought I could try an old version, but then realized trying an old version doesn't really answer the question, it could still be in gcc's field, or binutils causing a bug in gcc to surface, and leave the newest versions with a nasty bug.

Also, this bug goes back in HEAD/snapshots (Binutils) for at least 2 weeks. GCC 4.4 branch is affected only, including the release and current 4.4.2 pre-release.

Thanks for your attention.
Comment 2 Peter Anastos 2009-09-03 20:28:05 UTC
This is a binutils issue, and appears resolved.