Binutils
From Ellcc
Contents |
[edit] What is binutils?
ELLCC uses binutils for assembling assembler source files, linking native object files, and for the various utilities supplied for manipulating object files. Currently, ELLCC uses binutils 2.18. Some minor changes were made to some configuration scripts to allow a more consistent naming convention to be used for target names.
The current list of supported targets is:
- alpha-elf
- arm-elf
- spu-elf
- ia64-elf
- mips-elf
- powerpc-elf
- powerpc64-elf
- sparc-elf
- x86-elf
- x86_64-elf
- x86-pe
[edit] binutils Programs
The following programs are provided as part of ELLCC:
[edit] Utilities
- ecc-addr2line
- ecc-ar
- ecc-c++filt
- ecc-embedspu
- ecc-gprof
- ecc-ld
- ecc-nm
- ecc-objcopy
- ecc-objdump
- ecc-ranlib
- ecc-readelf
- ecc-size
- ecc-strings
- ecc-strip
[edit] Assemblers
- alpha-elf-as
- arm-elf-as
- as
- ia64-elf-as
- mips-elf-as
- powerpc64-elf-as
- powerpc-elf-as
- sparc-elf-as
- spu-elf-as
- x86_64-elf-as
- x86-elf-as
- x86-pe-as
[edit] Notes
[edit] Modifications to binutils 2.18
Added the x86-elf target as a synonym for i[34567]86-elf and x86-pe for PE files.
[edit] Support for the Nios2 Processor
[edit] Command Lines
A C program link line (from gcc):
ld --build-id -m elf_i386 --hash-style=gnu -static /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crt1.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crti.o /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbeginT.o -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../.. a.o --start-group -lgcc -lgcc_eh -lc --end-group /usr/lib/gcc/i386-redhat-linux/4.1.2/crtend.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crtn.o
A C++ program link line (from g++):
ld --build-id -m elf_i386 --hash-style=gnu -static -o pwpp /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crt1.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crti.o /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbeginT.o -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -L/usr/lib/gcc/i386-redhat-linux/4.1.2 -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../.. *.o -lstdc++ -lm --start-group -lgcc -lgcc_eh -lc --end-group /usr/lib/gcc/i386-redhat-linux/4.1.2/crtend.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crtn.o
The latest link line:
ld --build-id --static -m elf_i386 --hash-style=gnu /home/rich/local/i686-pc-linux-gnu/lib/crt0.o -L/home/rich/local/i686-pc-linux-gnu/lib -o sieve sieve.o -lc -L/home/rich/llvm-gcc/install/lib/gcc/i686-pc-linux-gnu/4.2.1 -lgcc
