> bash-2.05b# cat exit.s
> global _start:
> 
> _start:
>          xor ebx, ebx
>          mov eax, 1
>          int 80h
> 
> 
> $ uname -srp
> Linux 2.6.11-gentoo-r3 AMD Duron(tm) Processor

I tried your file (both with and without the erroneous colon) and it
worked fine. This was on a 2.4 Linux, however, using Nasm 0.98.38.

> bash-2.05b# nasm -f elf -o exit.o exit.s
> bash-2.05b# ld -o exit exit.o

Try compiling with "gcc -nostartfiles -o exit exit.o" instead, and see
if you get different results. If so, then gcc probably knows of some
extra arguments that ld needs to produce a proper executable. Whenever
feasible, you should let gcc do the linking for you instead of
invoking ld directly. ld can take a lot of cmdline arguments.

The "-nostartfiles" option will tell gcc not to supply a _start
routine, and not to link in the usual C libraries. You will probably
still get a slightly bigger executable than if you invoked ld
directly, but not by much.

b
-
To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to