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.
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).
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, 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
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:
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".
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.
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 [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>
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 :-)
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>
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).
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 :-)
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).
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 [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.
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.
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
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.