2009-02-07  John Dallaway  <john@dallaway.org.uk>

	* cdl/objloader.tcl: Pass file2c.tcl to tclsh directly.

2008-12-01  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/objloader.cdl: Adjust ARM architecture option so that it now
	allows Thumb and Thumb2 targets.
	Add option to build a Thumb module for ARM32 targets and add
	test_mods4 to try loading it.

	* include/objload.h (CYG_LDR_TABLE_KAPI_INTERRUPTS): Remove
	hal_interrupt_handlers and hal_default_isr from symbol table.
	Add include for cyg_ass.h.

	* src/relocate_arm.c (cyg_ldr_relocate): Add support for Thumb and
	Cortex-M relocations.

	* src/module.ld: Remove use of commands that are not supported in
	all platforms.

	* misc/shell/main.c: Add symbol table entries for
	hal_interrupt_handlers and hal_default_isr.

	* doc/objloader.sgml: Add some additional notes for specific
	target architectures.

	* tests/test_mods2.c: Limit stack sizes and symbol table for
	low-memory targets.

	* tests/test_mods4.c: New test to load a Thumb module into an
	ARM32 executable.

2008-09-15  John Dallaway  <jld@ecoscentric.com>

	* doc/objloader.sgml: Clarify that not all architectures are
	supported at present.

2008-09-10  John Dallaway  <jld@ecoscentric.com>

	* misc/shell/README, misc/shell/makefile: Clarify build instructions
	for users of the eCos Configuration Tool.

2008-09-01  Nick Garnett  <nickg@ecoscentric.com>

	* include/objload.h: Add some ifdefs to only define readv() and
	writev() when the network stack is present.

2008-08-29  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/objloader.cdl: Add make rules to preprocess module.ld and
	copy it to install lib directory.
	Use module.ld to build test module.

	* include/objload.h: Add CYG_LDR_TABLE_NET() to define symbol
	table entries for network stack.
	Add various other functions to several lists.
	Add default empty macros for all table definitions.

	* include/objelf.h: Some minor changed to debug support.

	* src/module.ld: Add this linker script to control partial linking
	of modules. This is based on the default -r script used by the
	linker with some changes for eCos. In particular all text/data/bss
	sections are collected together, and the ecos table sections are
	sorted and assigned to the data section.
	
	* src/objloader.c: Add ol_diag() calls to report all major loader
	errors.
	
	* doc/objloader.sgml: Add documentation for module.ld script.

	* misc/shell/README:
	* misc/shell/ecoshell.c:
	* misc/shell/ecoshell.h:
	* misc/shell/main.c:
	* misc/shell/makefile: Add shell example application.

2008-07-29  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/objloader.cdl: Change incremental link command lines to call
	via gcc front end rather than use linker directly. This allows
	architecture, model and other target options to be used by the
	linker in generating the module.

	* doc/objloader.sgml: Change example make rules for incremental
	link step in line with changes in CDL file.

2008-07-25  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/objloader.cdl: Add make commands to incrementally link test
	module against libgcc.

	* include/objelf.h (SYM_VALUE_UNKNOWN): Add this symbol definition.

	* doc/objloader.sgml: Add description of incremental link step of
	modules against libgcc.

	* src/relocate_ppc.c (cyg_ldr_relocate): Add R_PPC_PLTREL24
	relocation type.

	* src/relocate_arm.c (cyg_ldr_relocate): Add R_ARM_PLT32 and
	R_ARM_PREL31 relocation types.

	* src/objelf.c (cyg_ldr_external_address)
	(cyg_ldr_symbol_address, cyg_ldr_relocate_section): Return
	SYM_VALUE_UNKNOWN and test it in the appropriate places.

	* tests/library/hello.c: Add tests for float, double, long and
	long long arithmetic to test incremental link against libgcc.

2008-07-16  Bart Veer  <bartv@ecoscentric.com>

	* doc/objloader.sgml: document need for -G0 on some architectures.
	Fix CDL option names.

2008-07-15  Bart Veer  <bartv@ecoscentric.com>

	* cdl/objloader.cdl, include/relocate_m68k.h,
	include/relocate_nios2.h, src/relocate_m68k.c,
	src/relocate_nios2.c: add support for M68K and Nios II
	architectures.
	
	* cdl/objloader.cdl, include/objelf.h, include/objload.h,
	src/objelf.c, src/objloader.c: make option naming consistent.

2008-07-09  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/objloader.cdl: Add MIPS architecture support. Add CDL to
	compile a MIPS16 version of the test module and compile test_mods3
	if required.

	* include/relocate_arm.h (ELF_ARCH_ENDIANNESS): Define endianness
	according to compilation flag.

	* include/objelf.h: Align ol_diag() output more neatly.

	* include/relocate_mips.h:
	* src/relocate_mips.c: Add support for MIPS architecture,
	including big and little endian support and MIPS16 modules.

	* src/objelf.c (CYG_LDR_MAKE_LOCAL_ADDRESS): Add default
	definition of this macro.
	(cyg_ldr_print_symbol_names): Add decoded type and binding names
	to symbol information together with the value of the st_other
	field.
	(cyg_ldr_relocate_section): Add a newline between each section.

	* src/relocate_i386.c (cyg_ldr_flush_cache): Use
	HAL_[READ|WRITE]MEM_UINT32() rather than HAL_[READ|WRITE]_UINT32()
	to access memory. Provide these macros if not defined.

	* tests/test_mods3.c: New test to test MIPS16 support.

	* tests/library/hello.c (print_message_internal): Add this
	function to check local function address resolution; call it from
	both thread functions.

	* src/relocate_ppc.c (cyg_ldr_relocate): 
	* src/relocate_arm.c (cyg_ldr_relocate):
	* doc/objloader.sgml: A few tidies.

2008-06-23  John Dallaway  <jld@ecoscentric.com>

	* cdl/objloader.cdl: Allow building of memory loader test without
	file I/O and ROM filesystem packages. Enhance build tests logic.
	* tests/test_mods2.c, src/objelf.c: Eliminate unnecessary dependency
	on file I/O package.
	* host/file2c.tcl: Clone tool from ROM filesystem package pending
	further review.

2008-06-18  John Dallaway  <jld@ecoscentric.com>

	* cdl/objloader.cdl: Reference per-package documentation.

2008-05-30  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/objloader.cdl: Add ARM architecture support. Add CDL to
	control loaders. Add test/test_mods2 test.

	* include/objload.h: Added this file to define external API and
	avoid exposing the internals defined in objelf.h.
	
	* include/objelf.h: Remove external API definitions to objload.h,
	leaving only internal definitions here.

	* include/loader_fs.h: Remove this file. It is unnecessary.

	* src/objelf.c: 
	* src/objloader.c: Many changes to bring functionality and style
	up to eCosPro standard. Various bug fixes and API changes.

	* include/relocate_ppc.h: 
	* include/relocate_i386.h:
	* src/relocate_ppc.c: 
	* src/relocate_i386.c: 
	Updated to match changes elsewhere.

	* include/relocate_arm.h:
	* src/relocate_arm.c: Add ARM relocator.

	* src/loader_mem.c: Add new memory-based loader.

	* src/loader_fs.c: Changed to use FILEIO interface rather than
	STDIO. Various other changes to match changes in API.

	* tests/test_mods.c: Bring up to date with loader changes.

	* tests/test_mods2.c: Variant of test_mods that used memory loader
	rather than filesystem loader.

	* tests/library/hello.c: Brought up to date with other changes.
	
2006-06-27  Anthony Tonizzo  <atonizzo@gmail.com>

    * src/loader_fs.c : Minor cosmetic and formatting changes on all files. 
    Also got rid of some signed/unsigned comparison which did not show up using
    the PPC toolchain but do when compiled with gcc under the synthetic target.
    * src/objelf.c :    
    * src/objloader.c :
    * src/relocate_i386.c : 
    * src/relocate_ppc.c : 
    * include/elf.h :
    * include/loader_fs.h :
    * include/objelf.h :
    * include/relocate_i386.h : 
    * include/relocate_ppc.h : 
    * test/test_mods.c : 
    * test/library/hello.c : 
    
2005-07-08  Andrew Lunn  <andrew.lunn@ascom.ch>

    * include/objelf.h: Include hal_tables.h otherwise we get strange
    linker errors.
    * cdl/objloader.cdl: Rearranged the building of the test case.
    * include/relocate_i386.h (New):
    * src/relocate_i386.c (New): Added a relocator for i386.
    * src/objelf.c: Fixed various Elf_Rel vs Elf_Rela issues.
    * test/load_mods.c: 
    * test/library/hello.c: Modified to make use of the eCos test 
    infrastructure. Uses a romfs to hold the object file to be loaded.
    
2005-05-10  Anthony Tonizzo  <atonizzo@gmail.com>

    * include/elf.h: 
    * include/loader_fs.h: 
    * include/objelf.h: 
    * include/relocate_ppc.h: 
    * src/loader_fs.c: 
    * src/objelf.c: 
    * src/objloader.c: 
    * src/relocate_ppc.c: 
    * doc/notes.txt: 
    * cdl/objloader.cdl:
    * tests/test_mods.c:
    * tests/library/hello.c: 
    Created OBJLDR package.
    
//===========================================================================
// ####GPLCOPYRIGHTBEGIN####                                                
// -------------------------------------------                              
// This file is part of eCos, the Embedded Configurable Operating System.   
// Copyright (C) 2005, 2008 Free Software Foundation, Inc.                  
// Copyright (C) 2005, 2008 eCosCentric Limited                             
//
// This program is free software; you can redistribute it and/or modify     
// it under the terms of the GNU General Public License as published by     
// the Free Software Foundation; either version 2 or (at your option) any   
// later version.                                                           
//
// This program is distributed in the hope that it will be useful, but      
// WITHOUT ANY WARRANTY; without even the implied warranty of               
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU        
// General Public License for more details.                                 
//
// You should have received a copy of the GNU General Public License        
// along with this program; if not, write to the                            
// Free Software Foundation, Inc., 51 Franklin Street,                      
// Fifth Floor, Boston, MA  02110-1301, USA.                                
// -------------------------------------------                              
// ####GPLCOPYRIGHTEND####                                                  
//===========================================================================
