<div dir="ltr"><br><br><div class="gmail_quote">On Tue, Apr 5, 2011 at 11:27 AM, Valery Reznic <span dir="ltr">&lt;<a href="mailto:valery_reznic@yahoo.com">valery_reznic@yahoo.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Create programs using gcc -m32 is fine.<br>
But I use ld command not to create the program, but to create object file<br>
<br>
While both<br>
ld -m elf_i386 file1.o file2.o -o output.o<br>
and<br>
<div class="im">gcc -m32 file1.o file2.o -o output.o<br>
<br>
</div>create EXECUTABLE file (despite .o extension) <br></blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
I use<br>
ld -r file1.o file2.o -o output.o # Note -r<br>
<br>
that create &quot;partially linked object file&quot;<br></blockquote><div><br>AFAIK, you can do everything you can do with ld via a &quot;compiler driver&quot;. You only need to make sure that a) you pass the right options to the linker (using -Wl) and b) gcc does not attempt to do too much (e.g., pass default startfiles and standard libraries to ld - it may fail if you do it not for the actual architecture as you attempt to do). E.g.,<br>
<br>$ cat &gt; file1.c<br>static int foo = 1;<br>$ cat &gt; file2.c<br>static int bar = 2;<br>$ gcc -m32 -nostartfiles -nostdlib -Wl,--relocatable file1.c file2.c -o file.o<br>$ file file.o<br>file.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped<br>
<br>This _should_ be equivalent to what you are doing, the only arguable advantage is that gcc compiles and links in one go.<br><br>Note that _maybe_ (I have not tested it) gcc can do what you want in yet another way - you can combine several compilation units into one object at compile time using the -combine option (only works for C code!):<br>
<br>$ gcc -m32 -c -combine file1.c file2.c -o file.o<br>$ file file.o<br>file.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped<br><br></div></div>-- <br>Oleg Goldshmidt | <a href="mailto:pub@goldshmidt.org">pub@goldshmidt.org</a><br>

</div>