Home
| Calendar
| Mail Lists
| List Archives
| Desktop SIG
| Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU |
Jerry Feldman wrote: > On Wed, 11 Jul 2007 17:24:16 -0400 > Jarod Wilson <jarod-ajLrJawYSntWk0Htik3J/w at public.gmane.org> wrote: > >> On Wednesday 11 July 2007 16:45:47 Jerry Feldman wrote: >>> For reasons beyond my control, I have some code I need to compile that >>> must use gcc 3.3.3. Corporate a version of GCC they keep on an exported >>> system that contains all of GCC. The system I'm running on is RHEL 4.0 >>> x86_64 (EM64T Woodcrest) with GCC 4.3 installed. >>> In any case here is the sanitized line: >>> g++ -V 3.3.3 >>> -B<proper prefix.> >>> -B<proper prefix> >>> -I<prefix>/3.3.3/include >>> -I<prefix>/include >>> -I<prefix>/gcc-3.3.3/linux-i386-2.3/include/c++ >>> -I<prefix>/gcc-3.3.3/linux-i386-2.3/include/c++/i686-pc-linux-gnu >>> -g -Wall -D__NO_MATH_INLINES -D__NO_STRING_INLINES -D__error_t_defined >>> -fpic -fno-exceptions -I. >>> -I<product>/include -fexceptions -c DefineEnums.C >>> Changing -c to -S, and assembling the .s file, the error I get is: >>> DefineEnums.s: Assembler messages: >>> DefineEnums.s:136: Error: suffix or operands invalid for `push' >>> DefineEnums.s:140: Error: suffix or operands invalid for `push' >>> DefineEnums.s:145: Internal error, aborting >>> at ../../gas/config/tc-i386.c line 3500 in output_imm >>> (I get the identical error that references the temp file for the >>> assembler pass, but the temp file code is deleted). >>> >>> .LFB3253: >>> .loc 95 90 0 >>> pushl %ebp Line 136 >>> .LCFI0: >>> movl %esp, %ebp >>> .LCFI1: >>> pushl %ebx Line 140 >>> .LCFI2: >>> subl $4, %esp >>> .LCFI3: >>> call __i686.get_pc_thunk.bx >>> addl $_GLOBAL_OFFSET_TABLE_, %ebx Line 145 >>> >>> I have tried a few options, such as -m32. >> Have you tried prefixing the gcc call with 'setarch i386' ? I know this is >> required to build i686 kernels on x86_64 that actually work, could be you >> need it too. > > Unfortunately setarch does not make any difference. > Additionally, I compiled a simple hello.C > #include <iostream> > int main() > { > std::cout << "Hello, world!\n"; > return 0; > } > > With the same result. What if you set your PATH to have the gcc-3.3.3 install (with 'as' et al) first, then run (no need for the -V 3.3.3). It looks like somehow it's using the wrong version of some subprogram... HTH, Matt -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
BLU is a member of BostonUserGroups | |
We also thank MIT for the use of their facilities. |