OSDN Git Service
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Greg Ungerer [Mon, 3 Jul 2006 05:50:10 +0000 (05:50 +0000)]
* elf2flt.c (output_relocs) <use_resolved> [TARGET_arm]: Add
R_ARM_REL32, which does not need a relocation.
Patch submitted by Shaun Jackman <sjackman@gmail.com>
David McCullough [Mon, 26 Jun 2006 22:18:15 +0000 (22:18 +0000)]
Support the -a (use_resolved) option for TARGET_arm.
Shaun Jackman <sjackman@gmail.com>
David McCullough [Mon, 19 Jun 2006 22:00:41 +0000 (22:00 +0000)]
We've eliminated the use of the relocation stack from the Blackfin
toolchain. That means that the corresponding code in elf2flt can go
away, which is done by the patch below.
Bernd Schmidt <bernds_cb1@t-online.de>
Greg Ungerer [Thu, 15 Jun 2006 01:48:46 +0000 (01:48 +0000)]
Newly autoconf generated configure script. It was out-of-date relative
to the current configure.in. It didn't properly process
@binutils_ldscript_dir@, and that meant it was not properly set
in the ld-elf2flt.in/elf2flt.ld processing.
David McCullough [Tue, 23 May 2006 22:28:31 +0000 (22:28 +0000)]
The patch below teaches elf2flt to handle R_68K_PC16 relocs.
Our immediate need for this was to deal with relocs for uClibc's
libc/sysdeps/linux/m68k/clone.S, which has "bcc.w __syscall_error"
instructions. It might be argued that clone.S should be using jbcc
instead, in case __syscall_error ends up too far away. But even if
that's true, elf2flt should still support such branches in cases
whether the user _knows_ that the target is within range.
So I think elf2flt should be patched either way.
We've been using this patch for a while now without problems.
Please install if OK.
Richard
Signed-off-by: Richard Sandiford <richard@codesourcery.com>
David McCullough [Thu, 6 Apr 2006 00:37:45 +0000 (00:37 +0000)]
The current elf2flt.ld forgets to allow to put `gnu.linkonce.r*' sections
in the read-only data segment.
Philippe De Muyter <phdm@macqel.be>
David McCullough [Mon, 3 Apr 2006 02:58:44 +0000 (02:58 +0000)]
Add the "b" back to files opens for WIN32 builds as I am fairly sure it was
required.
Fix the remain rb and wb cases that were missed.
Greg Ungerer [Mon, 3 Apr 2006 00:24:56 +0000 (00:24 +0000)]
Changed the mode argument for all the popen() calls to be just "w",
instead of "wb". According to the Linux manual page posix implementations
must accept only "r" or "w", no other characters. And you will get a
return error with EINVAL with modern version og glibc if this is not
the case.
It may well be that this is fine for CYGWIN too, someone needs to
test and report.
Calls to fopen and the like are unchanged, and they certainly do
support the "b" mode specifier.
David McCullough [Mon, 3 Apr 2006 00:06:38 +0000 (00:06 +0000)]
Whee. What a most entertaining bug.
For some (unfathomable) reason, the flat loader in the kernel likes to
use network (big endian) byte order, but only sometimes. In particular,
its assumptions about relocation byte order depend on whether the
executable uses ID shared libraries or not.
It took me most of today to figure out why the kernel was trying to
relocate something at address 0x94160000, until I noticed that that's
the byteswapped version of 0x1694, and further noticed that it was
omitting a byteswap due to the flag Has-PIC-GOT in the flat header.
So, why is that flag set? After all, opreport wasn't compiled with
-mid-shared-library or anything.
It turns out that elf2flt sets that flag if grepping the executable for
GLOBAL_OFFSET_TABLE succeeds. That's a reasonable thing to do, except
when we link an executable against libbfd.a - which contains
GLOBAL_OFFSET_TABLE not as a symbol, but as a string, as it needs to
produce the symbol in linker output files.
Changing elf2flt to grep nm output, rather than the executable directly,
fixes the problem. So, in the end it turns out this wasn't related to
the
20030928 failure at all...
Bernd Schmidt <bernds_cb1@t-online.de>
David McCullough [Thu, 23 Mar 2006 23:06:49 +0000 (23:06 +0000)]
This patch adds support for .preinit_array, .init_array and .fini_array
to the elf2flt linker script. This seems useful in itself, and is
actually required for recent versions of uclibc, where UCLIBC_CTOR_DTOR=y
depends on the associated array symbols being defined.
Tested on m68k-uclinux using the gcc and g++ DejaGNU testsuites. I also
ran some tests by hand to make sure that callbacks in the array sections
were being called at the right time. Please install if OK.
Richard
Signed-off-by: Richard Sandiford <richard@codesourcery.com>
David McCullough [Wed, 22 Feb 2006 01:29:27 +0000 (01:29 +0000)]
Hello,
the following trivial patch is required to build elf2flt
on Darwin. Weirdly, static compilation is intentionally
unsupported by Apple for better compatibility:
http://developer.apple.com/qa/qa2001/qa1118.html
As elf2flt binaries are usually shipped along with other
dynamic binaries such as gcc and gdb, we don't loose
anything on Linux.
I'd commit it myself, but I can't access the CVS server
right now.
Bernardo Innocenti <bernie@develer.com>
David McCullough [Wed, 1 Feb 2006 22:34:46 +0000 (22:34 +0000)]
This patch allows cross-compilation of elf2flt for MinGW hosts when a
non-MinGW build system is in use. By using uname, there is currently an
assumption in 'Makefile.in' that (build system) == (host system), which
isn't necessarily the case in a Canadian cross environment. (At
CodeSourcery we use Linux for building our MinGW-hosted toolchains, some
of which will soon include elf2flt).
Julian Brown <julian@codesourcery.com>
David McCullough [Tue, 17 Jan 2006 23:12:08 +0000 (23:12 +0000)]
Patch to add configure option:
--with-binutils-ldscript-dir
to allow the user to change the location of the elf2flt.ld script.
Mike Frysinger <vapier@gentoo.org>
Greg Ungerer [Fri, 13 Jan 2006 06:08:01 +0000 (06:08 +0000)]
seems my previous attempt at updating the current elf2flt code with nios
relocations was slightly wrong ... the code needs to be moved down a few
hundred lines :)
Patch submitted by Mike Frysinger <vapier@gentoo.org>
David McCullough [Wed, 11 Jan 2006 03:39:16 +0000 (03:39 +0000)]
nios/nios2 support by Wentao Xu <wentao@microtronix.com>
cleaned up for inclusion by Mike Frysinger <vapier@gentoo.org>
David McCullough [Wed, 28 Sep 2005 05:26:02 +0000 (05:26 +0000)]
Hi,
I'm the maintainer of a windows hosted arm-elf gcc toolchain used mostly
for homebrew console development. One of my users recently asked if I
could have a look a getting elf2flt to build under mingw/msys to help
with his uclinux Nintendo DS port. I've attached a patch containing the
changes I made to the source in CVS, thought it might be useful.
2005-09-25 Dave Murphy <davem@devkitpro.org>
* Makefile.in: add ws2_32 library when building from msys shell.
* cygwin-elf.h: On mingw.include stdint.h and add extra typedefs
* elf2flt.c: Include cygwin-elf.h on mingw too.
* flthdr.c: For mingw use winsock2.h for internet consts & structs ,
use mktemp instead of mkstemp
Dave
David McCullough [Thu, 25 Aug 2005 02:19:42 +0000 (02:19 +0000)]
Blackfin support merged in by Bernd Schmidt <bernds_cb1@t-online.de>
David McCullough [Mon, 1 Aug 2005 00:02:33 +0000 (00:02 +0000)]
Change all file format related unsigned longs to uint32_t, so that 64 bits
hosts can build this code correctly, plus a little bit of Blackfin code.
Most of the changes provided Bernd Schmidt <bernds_cb1 at t-online.de>
David McCullough [Fri, 15 Jul 2005 10:33:32 +0000 (10:33 +0000)]
A new config.sub with blackfin support
Bernd Schmidt <bernds_cb1@t-online.de>
David McCullough [Wed, 6 Jul 2005 23:00:20 +0000 (23:00 +0000)]
Small spelling fixup from Dylan Griffiths.
John Williams [Tue, 3 May 2005 23:26:11 +0000 (23:26 +0000)]
Tweaked Makefile.in so that post-configured Makefile tests for a Cygwin build
environment, and if detected, explicitly adjusts the link order so that
libcygwin links *before* libiberty.a. This gets around a Cygwin problem with
getopt()'s optind/optarg symbols. See, for example:
http://sources.redhat.com/ml/cygwin/2004-04/msg01179.html
Also tweaked cygwin-elf.h and elf2flt.c so that Cygwin builds for MicroBlaze
target work as expected.
Patch sumbitted by John Williams <jwilliams@itee.uq.edu.au>
John Williams [Mon, 18 Apr 2005 22:00:48 +0000 (22:00 +0000)]
Explicit assignment of elf2flt package under GPL v2.0.
Bernardo Innocenti [Wed, 16 Mar 2005 03:26:26 +0000 (03:26 +0000)]
Add missing headers.
Patch submitted by Bernardo Innocenti <bernie@develer.com>.
Bernardo Innocenti [Wed, 23 Feb 2005 01:33:26 +0000 (01:33 +0000)]
Build elf2flt with headers from binutils 2.15.94+.
Should still work with older versions of binutils.
Patch submitted by Bernardo Innocenti <bernie@develer.com>.
Bernardo Innocenti [Wed, 23 Feb 2005 01:31:04 +0000 (01:31 +0000)]
Cygwin fixes.
Patch submitted by Stig Petter Olsrød <stigpo@users.sourceforge.net>.
John Williams [Mon, 8 Nov 2004 00:25:31 +0000 (00:25 +0000)]
Add support for win32 (non-cygwin) builds of elf2flt
Fix minor typo in error message
Patch submitted by Scott Thibault <thibault@gmvhdl.com>
Yoshinori Sato [Thu, 28 Oct 2004 16:54:25 +0000 (16:54 +0000)]
h8/300 forbid relocation of absolute symbol
David McCullough [Thu, 13 May 2004 00:45:07 +0000 (00:45 +0000)]
- add target h8300h
- shared flat binary support for h8
Yoshinori Sato <ysato@users.sourceforge.jp>
David McCullough [Tue, 23 Mar 2004 04:00:15 +0000 (04:00 +0000)]
Use headers direct from binutils
Patch also includes a horrible kludge to get around some wierdness in the
elf files produced by mb-ld.
John Williams <jwilliams@itee.uq.edu.au>
David McCullough [Fri, 19 Mar 2004 00:17:18 +0000 (00:17 +0000)]
A small patch to ld-elf2flt.in, that lets an elf2flt-ified toolchain run
from a directory other than that specifed in the original ./configure.
Helpful if you distribute toolchains and can't control where people
install them! :) Also helpful if you are testing toolchains and need to
move them around after the elf2flt "make install".
John Williams <jwilliams@itee.uq.edu.au>
Greg Ungerer [Tue, 9 Mar 2004 04:49:56 +0000 (04:49 +0000)]
Somehow the microblaze support in elf2flt/config.sub was removed in the last revision (1.4 -> 1.5).
Attached patch restores it.
Submitted by John Williams <jwilliams@itee.uq.edu.au>.
David McCullough [Tue, 10 Feb 2004 00:22:19 +0000 (00:22 +0000)]
When the linker "-v" flag is passed, turn on shell debugging to show what
we are doing.
David McCullough [Mon, 9 Feb 2004 23:59:40 +0000 (23:59 +0000)]
this patch for elf2flt makes sure that all install dirs exist before
copying files to them.
Bernardo Innocenti <bernie@develer.com>
David McCullough [Mon, 5 Jan 2004 23:41:50 +0000 (23:41 +0000)]
In order to use m68k-uclinux globally as the new toolchain target,
I had to replace config.sub and config.guess in elf2flt with updated
versions already containing the required bits.
Bernardo Innocenti <bernie@develer.com>
David McCullough [Mon, 5 Jan 2004 23:38:14 +0000 (23:38 +0000)]
A slightly updated configure script
Greg Ungerer [Tue, 11 Nov 2003 07:23:04 +0000 (07:23 +0000)]
Find attached the patch for the elf2flt utility. Except the elf2flt.c file, I have slightly modified the Makefile.in. The reason for this is to check the target architecture and if it is set to "e1", another linker script is installed. The reason for this alchemy is that our linker needs some sections that are included in the e1-elf2flt.ld script.
Patch submitted by Yannis Mitsos <gmitsos@telecom.ntua.gr>.
David McCullough [Tue, 23 Sep 2003 00:00:26 +0000 (00:00 +0000)]
Allow installing elf2flt with build directory out of the source directory
Bernardo Innocenti <bernie@develer.com>
David McCullough [Sun, 21 Sep 2003 23:19:08 +0000 (23:19 +0000)]
Check in stubs.c from Miles Bader's last patch
David McCullough [Tue, 9 Sep 2003 11:21:48 +0000 (11:21 +0000)]
Add support for possibly missing dcgettext function
Miles Bader <miles@gnu.org>
David McCullough [Tue, 9 Sep 2003 11:20:14 +0000 (11:20 +0000)]
Allow for really big apps, Miles Bader <miles@gnu.org>
David McCullough [Wed, 3 Sep 2003 12:29:29 +0000 (12:29 +0000)]
I've now tested building the uClinux tools on a Windows box. These are
some more elf2flt fixes required for Cygwin:
Bernardo Innocenti <bernie@develer.com>
David McCullough [Sun, 17 Aug 2003 23:41:40 +0000 (23:41 +0000)]
I've found the bug! A BSS link-once section was missing in elf2flt.ld.
The old version of GCC probably didn't ever generate this kind of
section because it was placing everything in the data link-once section.
Patch from Bernardo Innocenti <bernie@develer.com>
David McCullough [Wed, 6 Aug 2003 16:50:41 +0000 (16:50 +0000)]
Fixup after last update
David McCullough [Mon, 4 Aug 2003 18:06:49 +0000 (18:06 +0000)]
this patch adds Cygwin support to elf2flt. Also include a copy
of the elf.h header which is missing on Win32.
This is just a cleaned-up version of Leon's former Cygwin patch
and I couldn't really test it on Windows. At least I can ensure
it doesn't break anything on Linux :-)
Bernardo Innocenti <bernie@develer.com>
David McCullough [Tue, 29 Jul 2003 10:47:48 +0000 (10:47 +0000)]
Fixed handling of MICROBLAZE_32 reloc type. The mb-gcc distributes
relocations across several places - the "standard" ones such as
q->addend and bfd_section_vma(), but also embeds small offsets in the
actual text (code) itself. Thus, it is necessary to examine the text to
get an initial offset, then add that to the others to get the final
fixup location.
This is required for at least MICROBLAZE_64 and MICROBLAZE_32 - others
may also need it.
Patch from John Williams <jwilliams@itee.uq.edu.au>
David McCullough [Tue, 22 Jul 2003 11:31:20 +0000 (11:31 +0000)]
Patch from Bernardo Innocenti <bernie@develer.com>:
- Use implicit a.out as output when -o option is not specified, like
real ld does (this helps with configure tests);
- Protect OFILE usage with quotes in case the name contains spaces;
David McCullough [Mon, 14 Jul 2003 00:19:02 +0000 (00:19 +0000)]
Get rid of false/FALSE and true/TRUE usage so we work with all versions of
the binutils. Patch from Bernardo Innocenti <bernie@develer.com>.
David McCullough [Thu, 10 Jul 2003 23:17:30 +0000 (23:17 +0000)]
Ignore the -relax option. Done for the MicroBlaze, enabled for everyone,
hopefully this won't be a problem.
David McCullough [Thu, 10 Jul 2003 06:42:49 +0000 (06:42 +0000)]
Make sure "-relax" is only used on FINAL links, let's see if this is good
enough for the Microblaze -r/-relax incompatibility.
David McCullough [Wed, 25 Jun 2003 04:49:40 +0000 (04:49 +0000)]
Microblaze changes from John Williams.
David McCullough [Mon, 2 Jun 2003 11:11:08 +0000 (11:11 +0000)]
Two changes from Miles Bader <miles@gnu.org>
1.) Previously it was writing the relocated pointer at the pointer's section
offset from the start of the containing _segment_, not the start of the
containing section (it doesn't affect most people because for normal
usage, they're the same).
2) Add v850 HI16S/LO16 relocation type
David McCullough [Fri, 30 May 2003 07:02:26 +0000 (07:02 +0000)]
Fix the zero padding so that it doesn't crash if tehre is more than 1K of
padding required.
Fix the shared library support which, although the library is at a high
address, we don't want to pad the file to +16Mb. We also do not want the
relocations starting +16Mb into the file :-)
David McCullough [Thu, 29 May 2003 03:17:56 +0000 (03:17 +0000)]
Add ktrace option so that individual flat files will produce the useful
kernel trace for debugging.
Update to latest flat.h.
David McCullough [Tue, 27 May 2003 10:42:57 +0000 (10:42 +0000)]
Patches from Miles Bader <miles@gnu.org>:
* replace occurances of sectionp + q->address with r_mem.
* fix all hex debug to have 0x prefix
* Add new v850 split relocation support
Greg Ungerer [Thu, 22 May 2003 07:10:54 +0000 (07:10 +0000)]
Multiple sections of a given type are combined, and any holes between
sections are filled with zeroes.
This changes the definition of `text', `data', and `bss' to use the
flags set by BFD, rather than requiring hardwired input section names
(for the normal case where one is using GNU ld and the elf2flt.ld linker
script, this should produce identical results, as that only ever
produces the three well-defined sections anyway).
Patch from Miles Bader <miles@gnu.org>.
Greg Ungerer [Thu, 22 May 2003 07:07:52 +0000 (07:07 +0000)]
This capability was already sort of in the code, but intertwined with
the GOT/PIC processing option.
This patch enables a separate ELF file for relocation info to be
specified independently using a -R option.
Patch from Miles Bader <miles@gnu.org>.
Greg Ungerer [Thu, 22 May 2003 05:42:19 +0000 (05:42 +0000)]
Added support for the Microblaze archiecture.
The only mod outside the #ifdef TARGET_microblaze stuff in elf2flt.c is a new
entry in config.sub so it knows about the target, and a new entry in the
elf2flt.ld because the microblaze gnu tools create sections called (.bss.*).
Patch from John Williams <jwilliams@itee.uq.edu.au>.
David McCullough [Thu, 8 May 2003 03:36:16 +0000 (03:36 +0000)]
Added SH support from Paul Mundt <lethal@linux-sh.org>
David McCullough [Tue, 6 May 2003 07:57:20 +0000 (07:57 +0000)]
Fixup some host alignment errors from Miles Bader <miles@gnu.org>
David McCullough [Wed, 16 Apr 2003 06:16:00 +0000 (06:16 +0000)]
Added a --disable-got-check for platforms that can't do PIC/GOT yet, and
more so for h8300 binutils that cannot do the double link stage normally
used by ld-elf2flt.
This should be it for h8300 support in elf2flt.
David McCullough [Wed, 9 Apr 2003 05:18:13 +0000 (05:18 +0000)]
Add H8 support (tested on H8300S).
Remove GOT limit from all but the m68k targets.
Added bad reloc error count and fail
Added --with-binutils-include-dir so we can get the elf/XX headers
from binutils directly and eventually dispense with elf.h.
David McCullough [Fri, 14 Mar 2003 04:26:42 +0000 (04:26 +0000)]
arm expects the data segment on a 32 byte boundary, otherwise the GOT
entries can throw the alignment of the relocations out and things get
pretty ugly from there.
David McCullough [Thu, 13 Mar 2003 06:14:40 +0000 (06:14 +0000)]
put in the full contructor support by default.
For arm-elf remove all lines containing __[CD]TOR_END__, I'm not sure why
it is different yet.
David McCullough [Tue, 4 Mar 2003 10:48:37 +0000 (10:48 +0000)]
Changes needed to fix arm-elf debugging and pthreads on ARM and m68k
It also fixes random crashes on ARM where the end of data was not
aligned on a 16byte boundary.
Erik Andersen [Wed, 31 Jul 2002 09:07:41 +0000 (09:07 +0000)]
gcc 3.1 and 3.1.1 create a .jcr ELF section, which apparently is intended to
contain a list of pointers to classes to be registered during constructor
invoction time. Sigh. So make elf2flt work with newer gcc versions.
-Erik
Erik Andersen [Wed, 31 Jul 2002 05:13:08 +0000 (05:13 +0000)]
Pass through R_ARM_GOT32 and R_ARM_GOTPC relocations
David McCullough [Thu, 11 Jul 2002 14:09:32 +0000 (14:09 +0000)]
Clean up the absolute path problems in ld-elf2flt
Tested with arm-elf toolchain build, apps build
and run ok for me :-)
Greg Ungerer [Fri, 12 Apr 2002 13:00:44 +0000 (13:00 +0000)]
Fixed some spelling mistakes.
David McCullough [Thu, 11 Apr 2002 00:05:51 +0000 (00:05 +0000)]
cleanup a few things while adding support for the shared library flat file
stuff.
Greg Ungerer [Tue, 19 Mar 2002 02:21:30 +0000 (02:21 +0000)]
Fixup for ARM PLT32 relocation type, patch from David Byron
<dbyron@dbyron.com> (was <dbyron@coactive.com>).
David McCullough [Mon, 18 Feb 2002 04:58:36 +0000 (04:58 +0000)]
Added -with-bfd-include-dir=<dir> option as we have to use the bfd.h
that matches the libbfd.a we are using, otherwise, elf2flt may coredump if
the system header is incompatible with the libbfd.a used.
David McCullough [Sun, 17 Feb 2002 23:26:11 +0000 (23:26 +0000)]
Changes from Pauli to enable moving strings into the text area (if possible).
David McCullough [Sun, 17 Feb 2002 23:20:14 +0000 (23:20 +0000)]
Changes to compile under Solaris from The LEOX team <lpm@leox.org>.
Greg Ungerer [Thu, 14 Feb 2002 13:07:29 +0000 (13:07 +0000)]
Improvements to the configure system from Miles Bader (miles@lsi.nec.co.jp).
David McCullough [Thu, 14 Feb 2002 09:56:05 +0000 (09:56 +0000)]
Some more v850 tweaks from Miles Bader <miles@gnu.org>
David McCullough [Thu, 14 Feb 2002 09:44:56 +0000 (09:44 +0000)]
Fix an error in the last update.
David McCullough [Thu, 14 Feb 2002 01:59:17 +0000 (01:59 +0000)]
Fixups for the v850 from Miles Bader <miles@gnu.org>.
David McCullough [Thu, 14 Feb 2002 01:40:50 +0000 (01:40 +0000)]
Initial revision