X-Authentication-Warning: larry.ztnet.com: Host cm-24-25-151-140.nycap.rr.com [24.25.151.140] claimed to be shady Message-ID: <00b901c09635$8fca3240$8c971918@nycap.rr.com> From: "Matthew Conte" To: Subject: possible objcopy problem. Date: Tue, 13 Feb 2001 22:23:49 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Reply-To: djgpp-workers AT delorie DOT com Hello, djgpp-workers. I'm having a bit of trouble with objcopy, and I'm not quite sure if I should take this to the binutils mailing list, so I thought I might present the problem here. I apologize if this is a bit off-topic, but I was directed here by someone on comp.os.msdos.djgpp. I use the ARM/elf port of the GNU tools for my software development at work, and I've been a long-time user of gcc and djgpp at home. As I work in the games industry, I routinely need to include large binary files (graphics, sound, etc.) into my programs at work. When I used to work in purely ASM, this was easy, as most assemblers simply allow you to include binary files. Moving to C/C++ made it a tad harder, but I found a way to use objcopy to do my dirty work. Taking a raw chunk of binary data, 'input.bin', and issuing the following command (for ARM7): $ objcopy -v -I binary -O elf32-little input.bin output.o generates an object file with with the entirety of the file in the .data section, and the following symbols defined: extern const char _binary_input_bin_start[]; extern const char _binary_input_bin_end[]; extern const char _binary_input_bin_size[]; This object file can simply linked into the executable and used out of the box. I tried the same thing with djgpp, and I'm running into trouble. $ objcopy -v -I binary -O coff-go32 input.bin output.o Now, objcopy gives me a *warning* here, but for the books, I get the same warning when using the elf32-little port: > copy from input.bin(binary) to output.o(coff-go32) > c:/djgpp/bin/objcopy.exe: Warning: Output file cannot represent architecture UNKNOWN! Running 'nm' on this file generates: $ nm output.o > c:/djgpp/bin/nm.exe: output.o: File format not recognized Even though I can clearly see (in a hex editor) the ".data" section tag, and the debug symbol names (the aforementioned const char []'s). Can anyone offer any kind of explanation as to what is going wrong? Is the djgpp port broken, or the elf32-little port, or neither? Thank you very much in advance; all help appreciated. Regards, Matthew Conte.