This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to add a new target in binutils ?


Thanks , Ian, I will try what you have suggested.

On 2012å09æ21æ 21:12, Ian Lance Taylor wrote:
On Fri, Sep 21, 2012 at 12:26 AM, Shawn <shaolin.xie@ia.ac.cn> wrote:
On 2012å09æ21æ 01:27, Ian Lance Taylor wrote:
On Wed, Sep 19, 2012 at 11:41 PM, Shawn <shaolin.xie@ia.ac.cn> wrote:

      I'm new to binutils and I want to port a linker  to a new
architecture.
What I need is just a very basic linker , which can link static elf
object
files or static libraries into executables, no functionality for shared
library or dynamic link.
      I tried the Gold first,  but found it hastests been bounded to the
binutils,
and can't be compiled separately. so I tried to port the bintuils as a
whole.
Although gold is part of the binutils, it does not use BFD.  So to
port gold it would suffice to just change the top level configure and
make files.
Thanks Ian, that's great, GOLD is a nice work. I plan to take the
gold/powerpc.cc & elfcpp/powerpc.h as my start point.

But I still have some questions. At first I have tried to compile the gold
separately with following command :
======================================
~/Work/binutils/binutils-mpu-2.22/gold/configure
--prefix=/home/xiesl/Tools/binutils/
make

but error occurs:
======================================
/home/xiesl/Work/binutils/binutils-mpu-2.22/gold/options.cc:35:27: fatal
errorï ../bfd/bfdver.hïno such file or directory
compilation interrupted.
make[2]: *** [options.o] error 1
make[2]:leaving `/tmp/build'
make[1]: *** [all-recursive] error 1
make[1]:leaving `/tmp/build'

make: *** [all] error 2

So can I compile the gold separately ?
No, you're right, the unmodified sources do require that the BFD
library be built.  But the only file that is required from BFD is in
fact bfdver.h, and it is only used for the output of gold --version
and --help.  You could write your own copy of that file (look for
bfdver.h in bfd/Makefile.am) and not bother with the rest of BFD.  In
particular BFD does not have to actually work for your processor.

and the run the aclocal & autoconf , but errors
======================================
xiesl@ubuntu:~/Work/binutils/binutils-mpu-2.22/bfd$ aclocal
configure.in:116: warning: macro `AM_BINUTILS_WARNINGS' not found in library
xiesl@ubuntu:~/Work/binutils/binutils-mpu-2.22/bfd$ autoconf
configure.in:116: error: possibly undefined macro: AM_BINUTILS_WARNINGS
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
======================================
It looks like you didn't pass the right options to aclocal.  It's
easier to simply run autoreconf.  If you really want to run aclocal,
run "aclocal -I . -I .. -I ../config".

By the way, I have used the option "--enable-maintainer-mode" at the first
try, Will this option update the configuration script automatically ?
It will cause the configuration script to be updated when you run
"make" if any of the inputs files are out of date.  You still have to
get the right configuration scripts the first time around.

Ian




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]