[Bug c++/19281] file format not recognized; treating as linker script

jeff at connectrf dot com gcc-bugzilla@gcc.gnu.org
Mon Jan 10 18:46:00 GMT 2005


------- Additional Comments From jeff at connectrf dot com  2005-01-10 18:45 -------
Andrew,

A view from the ld folks.  They believe that the ld is failing due to the
-fpreprocessed switch not producing the .o file..

------- Additional Comments From nickc at redhat dot com  2005-01-10 17:57 -------
Subject: Re:  file format not recognized; treating as linker script

Hi Jeff,


>> I tried it with -c same result.  Also, when I ran file on it it says ASCII text.


Hmm, what size is the file ?


>> Here are the messages
>> 
>> **** Full rebuild of configuration Release for project Auth ****

Note - I would strongly suggest that you halt the build process after 
the creation of the first object file.  Things have definitely gone 
wrong by this point.  We are not looking at a linker bug, we are looking 
at a gcc bug or possibly a gas bug.

There appears to be something very odd going on when an object file is 
built:



>> g++ -O3 -Wall -c -fpreprocessed -M -v -oAuthTest.o ../AuthTest.cpp


So G++ is invoked on AuthTest.cpp.  I assume that the "-fpreprocessed" 
switch is correct and that this source file has already been pre-processed ?


>> Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
>> Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr
>> --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib
>> --mandir=/usr/share/man --infodir=/usr/share/info
>> --enable-languages=c,ada,c++,d,f77,java,objc,pascal --enable-nls
>> --without-included-gettext --enable-libgcj --with-system-zlib
>> --enable-interpreter --enable-threads=posix --enable-java-gc=boehm
>> --enable-sjlj-exceptions --disable-version-specific-runtime-libs
>> --disable-win32-registry
>> Thread model: posix
>> gcc version 3.3.3 (cygwin special)
>>  /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/cc1plus.exe -E -D__GNUG__=3 -quiet -v -M
>> -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 -D__CYGWIN32__
>> -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter
>> /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../include/w32api -idirafter
>>
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/lib/../../include/w32api
>> ../AuthTest.cpp -oAuthTest.o -Wall -fpreprocessed -O3


So cc1plus.exe is run once...


>> ignoring nonexistent directory "/usr/local/include"
>> ignoring nonexistent directory "/usr/i686-pc-cygwin/include"
>> ignoring duplicate directory "/usr/i686-pc-cygwin/lib/../../include/w32api"
>> #include "..." search starts here:
>> #include <...> search starts here:
>>  /usr/include/c++/3.3.3
>>  /usr/include/c++/3.3.3/i686-pc-cygwin
>>  /usr/include/c++/3.3.3/backward
>>  /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/include
>>  /usr/include
>>  /usr/include/w32api
>> End of search list.
>> Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
>> Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr
>> --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib
>> --mandir=/usr/share/man --infodir=/usr/share/info
>> --enable-languages=c,ada,c++,d,f77,java,objc,pascal --enable-nls
>> --without-included-gettext --enable-libgcj --with-system-zlib
>> --enable-interpreter --enable-threads=posix --enable-java-gc=boehm
>> --enable-sjlj-exceptions --disable-version-specific-runtime-libs
>> --disable-win32-registry
>> Thread model: posix
>> gcc version 3.3.3 (cygwin special)
>>  /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/cc1plus.exe -E -D__GNUG__=3 -quiet -v -P
>> -M -MM -MG -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3
>> -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter
>> /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../include/w32api -idirafter
>>
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/lib/../../include/w32api
>> ../AuthTest.cpp -Wall -w -fpreprocessed -O3


... and then it is run again with the -o switch missing ?  Why ?


>> ignoring nonexistent directory "/usr/local/include"
>> ignoring nonexistent directory "/usr/i686-pc-cygwin/include"
>> ignoring duplicate directory "/usr/i686-pc-cygwin/lib/../../include/w32api"
>> #include "..." search starts here:
>> #include <...> search starts here:
>>  /usr/include/c++/3.3.3
>>  /usr/include/c++/3.3.3/i686-pc-cygwin
>>  /usr/include/c++/3.3.3/backward
>>  /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/include
>>  /usr/include
>>  /usr/include/w32api
>> End of search list.
>> Finished building: ../AuthTest.cpp


... and yet GAS has not been invoked to turn the assembler output of the 
cc1plus.exe program into an object file.

Perhaps ... the g++ driver program is picking the wrong executable to 
use to convert assembler into binary ?

Cheers
   Nick



-- http://sources.redhat.com/bugzilla/show_bug.cgi?id=641 ------- You are
receiving this mail because: ------- You reported the bug, or are watching the
reporter. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19281



More information about the Gcc-bugs mailing list