Skip to content

Latest commit

 

History

History
71 lines (53 loc) · 3.04 KB

README.md

File metadata and controls

71 lines (53 loc) · 3.04 KB

elf2flt

Build Status

Copyright (C) 2001-2003, SnapGear (www.snapgear.com) David McCullough ucdevel@gmail.com Greg Ungerer gerg@uclinux.org

This is Free Software, under the GNU Public License v2 or greater. See LICENSE.TXT for more details.

Elf2flt with PIC, ZFLAT and full reloc support. Currently supported targets include: m68k/ColdFire, ARM, Sparc, NEC v850, MicroBlaze, h8300, SuperH, and Blackfin.

Compiling

You need an appropriate libbfd.a and libiberty.a for your target to build this tool. They are normally part of the binutils package.

To compile elf2flt do:

./configure --target=<ARCH> --with-bfd-include-dir=/usr/include --with-libbfd=<libbfd.a> --with-libiberty=<libiberty.a>
make
make install

The argument to configure specifies what the target architecture is. This should be the same target as you used to build the binutils and gcc cross development tools. The --with-bfd-include-dir argument is the folder which contains bfd.h from binutils-dev, which is then linked to in bfd-headers/bfd.h. The --with-libbfd and --with-libiberty arguments specify where the libbfd.a and libiberty.a library files are to use.

NOTE: if make cant find libiberty.h, use dpkg --serach _file_.h if you dont know where they are, and edit LIBIBERTY_INCLUDE_DIR. This allows you to also use a non-system installed set if you choose.

Files

  • README.md - this file
  • configure - autoconf configuration shell script
  • configure.ac - original autoconf file
  • config.* - autoconf support scripts
  • Makefile.in - Makefile template used by configure
  • elf2flt.c - the source
  • flthdr.c - flat header manipulation program
  • flat.h - header from uClinux kernel sources
  • elf2flt.ld - an example linker script that works for C/C++ and uClinux
  • ld-elf2flt - A linker replacement that implements a -elf2flt option for the linker and runs elf2flt automatically for you. It auto detects PIC/non-PIC code and adjusts its option accordingly. It uses the environment variable FLTFLAGS when running elf2flt. It runs /.../-ld.real to do the actual linking.
  • stubs.c - Support for various functions that your OS might be missing.

Tips

The ld-elf2flt produces 2 files as output. The binary flat file X, and X.gdb which is used for debugging and PIC purposes.

The -p option requires an elf executable linked at address 0. The elf2flt.ld provided will generate the correct format binary when linked with the real linker with no -r option for the linker.

The -r flag can be added to PIC builds to get contiguous code/data. This is good for loading application symbols into gdb (add-symbol-file XXX.gdb).

Support

You can use the github site to file issues and send pull requests, and the uclinux-dev@uclinux.org mailing list to contact the developers.