[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [microblaze-uclinux] uclinux memory exhausted, unable to allocate RAM



John,

Thank you for the reply. I am refactoring my makefile.

> The pain associated with (3) is why we've gone to the effort of creating 
> a standalone toolchain, and why snapgear created the ucfront tool.

I guess the standalone toolchain here refers to microblaze-uclinux-gcc. However, I have a mixture of .c and .cpp files, and I have to use microblaze-uclinux-g++ for linking.

Is there a way to invoke compiler and linking in one single phase for c and cpp source files?

Rgds,
Victor

-----Original Message-----
From: owner-microblaze-uclinux@xxxxxxxxxxxxxx [mailto:owner-microblaze-uclinux@xxxxxxxxxxxxxx] On Behalf Of John Williams
Sent: Thursday, June 28, 2007 10:31 AM
To: microblaze-uclinux@xxxxxxxxxxxxxx
Subject: Re: [microblaze-uclinux] uclinux memory exhausted, unable to allocate RAM

Victor,

A couple of things:

1. you probably need "export FLTFLAGS" in microblaze.mk

2. it looks like you are using a custom link script. This is likely to 
cause pain.

3. explicitly invoking the compiler and linker in separate phases will 
cause pain.

The pain associated with (3) is why we've gone to the effort of creating 
a standalone toolchain, and why snapgear created the ucfront tool.

If you really have to do this, then you'll need to look carefully at the 
output of a command line

microblaze-uclinux-gcc --save-temps -v -o foo foo.c

and split it into the indiviual commands that are invoked by the gcc 
frontend.  In particular, have a look at the link phase (actually it 
will invoke a binary called "collect2", but it's the same as ld)

There are many, many flags that get passed in addition to -elf2flt. 
You'll need to munge these into your Makefile infrstructure.

My advice is to refactor your makefile so that it looks more like the 
ones created by petalinux-new-app, or those in 
petalinux-dist/user/*/Makefile

At the very least, you want something resembling this stuff at the top 
(to get sensible CFLAGS and LDFLAGS):

# Point to default PetaLinux root directory
ifndef ROOTDIR
ROOTDIR=$(PETALINUX)/software/petalinux-dist
endif
 

PATH := $(PATH):$(ROOTDIR)/tools
 

UCLINUX_BUILD_USER = 1
-include $(ROOTDIR)/.config
-include $(ROOTDIR)/$(CONFIG_LINUXDIR)/.config
LIBCDIR = $(CONFIG_LIBCDIR)
-include $(ROOTDIR)/config.arch
ROMFSDIR=$(ROOTDIR)/romfs
ROMFSINST=$(ROOTDIR)/tools/romfs-inst.sh

regards,

John




victor-sv_yeo@xxxxxxxxxxx wrote:
> John,
> 
> The makefiles are pretty complicated. I will attach them here, though I doubt anyone will have the patience to go through them.
> 
> Summary of the makefiles:
> 1) Makefile make use of FLTFLAGS in the linking stage, and basically it says how to link the object files. You might want to search for "echo Linking" to go directly to the linking part.
> 
> 2) FLTFLAGS+=-v is defined in microblaze.mk
> 3) In rules.mk, it says how to compile the object files.
> 
> Am I missing something in the makefile, such as invoking mb-elf2flt?
> 
> There is a tutorial on binary flat format:
> http://www.beyondlogic.org/uClinux/bflt.htm
> 
> Anyone knows what the criterion is for the code to go into either .text segment or relocations segment?
> 
> Thanks
> Victor
> 
> -----Original Message-----
> From: owner-microblaze-uclinux@xxxxxxxxxxxxxx [mailto:owner-microblaze-uclinux@xxxxxxxxxxxxxx] On Behalf Of John Williams
> Sent: Wednesday, June 27, 2007 6:29 PM
> To: microblaze-uclinux@xxxxxxxxxxxxxx
> Subject: Re: [microblaze-uclinux] uclinux memory exhausted, unable to allocate RAM
> 
> Hi Victor,
> 
> 
>>Yeah, I added FLTFLAGS+=-v to my makefile. However, my makefile is not using the FLTFLAGS anywhere. I am not calling mb-elf2flt anywhere too. 
>>
>>In fact, I am not sure where to add the FLTFLAGS thingy.
> 
> 
> Can you please post the app Makefile?
> 
> John
> 
> ___________________________
> microblaze-uclinux mailing list
> microblaze-uclinux@xxxxxxxxxxxxxx
> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
> Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/


___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/