This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: 4.3 build failure in driver-i386.c
- From: "Richard Guenther" <richard dot guenther at gmail dot com>
- To: "Greg Schafer" <gschafer at zip dot com dot au>
- Cc: gcc at gcc dot gnu dot org, "Rask Ingemann Lambertsen" <rask at sygehus dot dk>
- Date: Sun, 17 Feb 2008 10:40:28 +0100
- Subject: Re: 4.3 build failure in driver-i386.c
- References: <pan.2008.02.17.08.38.49.138928@zip.com.au>
On Feb 17, 2008 9:38 AM, Greg Schafer <gschafer@zip.com.au> wrote:
> Hi,
>
> driver-i386.s: Assembler messages:
> driver-i386.s:2454: Error: invalid character '{' in mnemonic
> driver-i386.s:2455: Error: invalid character '{' in mnemonic
> driver-i386.s:2456: Error: invalid character '{' in mnemonic
> driver-i386.s:2457: Error: invalid character '{' in mnemonic
> driver-i386.s:2458: Error: invalid character '{' in mnemonic
> driver-i386.s:2459: Error: invalid character '{' in mnemonic
> driver-i386.s:2460: Error: invalid character '{' in mnemonic
> driver-i386.s:2461: Error: invalid character '{' in mnemonic
> driver-i386.s:2462: Error: invalid character '{' in mnemonic
> driver-i386.s:2463: Error: invalid character '{' in mnemonic
>
> This is on an ancient distro (don't ask..) i.e. RedHat 6.2. (4.2.3 builds
> fine so this is somewhat of a regression...)
>
> Looking at the -save-temps output, it seems the old assembler is choking
> on this syntax from __get_cpuid_max() in cpuid.h:
>
> .stabn 68,0,91,.LM210-__get_cpuid_max
> .LM210:
> #APP
> pushf{l|d}
> pushf{l|d}
> pop{l} %eax
> mov{l} {%eax, %edx|%edx, %eax}
> xor{l} {$2097152, %eax|%eax, $2097152}
> push{l} %eax
> popf{l|d}
> pushf{l|d}
> pop{l} %eax
> popf{l|d}
>
> #NO_APP
>
>
> It's kind of unfortunate for the build to break in this way. Is there any
> hope for some kind of fix or workaround? I realize ancient distros are not
> a priority, but still....
The problem is that your host GCC doesn't recognize the inline asm correctly
(the above should not reach the assembler), GCC 3.3.x handles the above fine.
This probably also breaks build with non-GCC host compilers.
Rask, you introduced this change - any idea on how to fix this? Can we please
revert the cpuid.h change for 4.3.0 if this is too hard to fix in a short time?
Thanks,
Richard.