[Efi332] XFI555 GNU C Questions

David Eicher sailors3
Sun Apr 3 14:20:56 UTC 2005


Hello list:

I ultimately ended up deleting those "LOAD(  )" commands in the linker
script, I couldn't find any mention of such a command in the GNU
documentation. I believe the .data section will be placed correctly just
because of the relocation counter. Then I added a statement:

. = . + SIZEOF(.data);

To move the relocation counter to the correct place to locate the .sdata
section right after .data. I assume that is all working but have not been
able to confirm yet because of other problems.

Everything in the EABI API quickstart package is compiling and assembling
without errors now. Then the linker runs I get the following:

Powerpc-elf-ld -melf32ppc -Tdebug.dld -Map=main.map -nostartfiles -o
main.elf <includes (all .o files> > main.map 
Signal 11
Make: *** [main.elf] Error 139

After the makefile ends this way, I check the main.elf and main.map files
and they are empty. So, I'm not getting any output from the linker. It
appears to me the linker is terminating without completing because of an
error (Signal 11), and then make quits because the linker ended with errors.
But, I can't find any documentation on GNU that tells me what these errors
mean and I don't have a clue what to change to deal with them. 

I did tinker a bit with the command line options, after performing a make
clean followed by a make (to get a fresh build), the errors above stopped
happening. But I the main.map file is still empty, and main.elf is never
generated. So..., I feel like I'm close to having a working solution but
stumped at the moment on this issue.

Any ideas?

Thanks for any help you might be able to offer.

Dave



-----Original Message-----
From: efi332-bounces at diy-efi.org [mailto:efi332-bounces at diy-efi.org] On
Behalf Of David Eicher
Sent: Friday, April 01, 2005 7:05 AM
To: 'A list for people building efi332systems.'
Subject: [Efi332] XFI555 status

Hello list:

The EABI API is compiling and assembling without errors now using the GNU C
toolset (target = PHYTEC MPC555). I have a small test program written that
toggles LEDs on/off and responds to commands from QSCI and outputs to QSCI.
I'm working my way through linker errors now. The GNU linker doesn't like
line 38 (shown below with ERROR HERE). There is no command defined in the
GNU documentation for LOAD(  ), doesn't anyone know what the author intended
to do using this load command? I took this linker script from the CME-555
Diab demo library. Any Diab experts out there? 

It seems like the intent is to cause the linker to place the .data section
at the address of __DATA_ROM but I've not been able to find a GNU equivalent
that will be accepted.

Thanks for any insight you might be able to offer,

Dave


SECTIONS
{
	/* The first GROUP contains code and constant data. */
	GROUP : {
		.reset : {}
		.text (TEXT)	: {
			*(.text)
			*(.rdata)
			*(.rodata)
			*(.frame_info)
			*(.init)
			*(.fini)
			*(.eini)
		}
		/* .eirtable ALIGN(2048) : {} */
		.sdata2 (TEXT)	: {}   /* small CONST area */

	/* The second GROUP allocates space for initialized data and
uninitialized data. */
		
	GROUP : {
		__DATA_ROM	= .;
		__DATA_RAM	= .;
		.data  (DATA) LOAD(__DATA_ROM) : {}		<-ERROR HERE
		.sdata (DATA) LOAD(__DATA_ROM+SIZEOF(.data)) : {}
		__DATA_END	= .;


_______________________________________________
Efi332 mailing list
Efi332 at diy-efi.org
http://lists.diy-efi.org/mailman/listinfo/efi332





More information about the Efi332 mailing list