Hi Greg, I have used this a lot for applications without XIP in the meantime, it works fine. I just wanted to note that running elf2flt without the "-a" option does NOT work.
Sorry that I didn't make a neat patch, just not enough time. -Erwin Am Donnerstag, den 21.05.2009, 16:57 +1000 schrieb Greg Ungerer: > Hi Erwin, > > Erwin Authried wrote: > > Hi, > > I have solved the "reloc type R_ARM_PC24 unsupported in this context" > > error by modifying elf2flt.c: > > > > -Erwin > > > > ... > > #elif defined(TARGET_arm) > > case R_ARM_ABS32: > > relocation_needed = 1; > > break; > > case R_ARM_REL32: > > case R_ARM_THM_PC11: > > case R_ARM_THM_PC22: > > // ==> add the following 4 lines: > > case R_ARM_PC24: > > case R_ARM_PLT32: > > case R_ARM_GOTPC: > > case R_ARM_GOT32: > > relocation_needed = 0; > > break; > > default: > > goto bad_resolved_reloc; > > Thats looks right to me. I think we can go ahead and push > that into the elf2flt CVS? > > Regards > Greg > > > > > > > Am Mittwoch, den 20.05.2009, 12:29 -0400 schrieb Jeff Bacon: > >> Hi, I've just started on a uClinux 2.6 port to a custom ARM7TDMI board > >> (we've had a uClinux 2.4 kernel running with no problems for a couple > >> of years now, but decided to take the plunge and upgrade). I just > >> joined the mailing list and am trying to resurrect the thread below > >> from Erwin... > >> > >> > >> First. here is some background on where we are right now > >> > >> We are currently using the same base kernel and toolchain mentioned > >> below(uClinux-dist-20080808, snapgear toolchain > >> arm-linux-tools-20070808.tar.gz) and we're having a ton of issues with > >> getting our XIP ROMFS root filesystem working out of flash (the kernel > >> boots, the filesystem mounts and I get a SASH prompt, but the system > >> is HIGHLY unstable and usually crashes after a couple of commands). In > >> fact, basic things are broken such as "cat". I've set the init=/bin/sh > >> kernel parameter to boot immediately into the shell, but if I try > >> > >> "cat /etc/motd", I get a ton of output like this(note, ROMFS debugging > >> is turned ON): > >> > >> **************************************************************************************** > >> <snip> > >> VFS: Mounted root (romfs filesystem) readonly. > >> Freeing init memory: 76K > >> BINFMT_FLAT: ROM mapping of file (we hope) > >> BINFMT_FLAT: Allocated data+bss+stack (21094 bytes): 2b8004 > >> p=2bfffc > >> start_thread(regs=0x1eff08, entry=0x280044, start_stack=0x2bffb8) > >> > >> Sash command shell (version 1.1.1) > >> /> ls /etc > >> BINFMT_FLAT: ROM mapping of file (we hope) > >> BINFMT_FLAT: Allocated data+bss+stack (10894 bytes): 2f0004 > >> p=2f3ffc > >> start_thread(regs=0x2c7fb0, entry=0x2e0044, start_stack=0x2f3f80) > >> inittab modprobe.conf motd passwd ramfs.img > >> rc services version > >> /> cat /etc/motd > >> BINFMT_FLAT: ROM mapping of file (we hope) > >> BINFMT_FLAT: Allocated data+bss+stack (11541 bytes): 2cc004 > >> p=2cfffc > >> start_thread(regs=0x2b7fb0, entry=0x2c8044, start_stack=0x2cff78) > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> : : No such file or directory > >> /> > >> **************************************************************************************** > >> Mounting /proc works, but I can't cat any of those files as well, but > >> either way, the system only SOMETIMES makes it this far before dying > >> completely (just stalls, no kernel panics or oops or anything). > >> > >> Anyway, while trying to debug this, the first thing I tried was taking > >> Flash out of the equation. So in my bootloader I restrict system RAM > >> to 4MB (we have an 8MB part) and copy the ROMFS image from flash into > >> the 2nd 4MB of RAM. I add the mem=4MB kernel parameter to restrict > >> uClinux to the 1st 4MB of RAM, then compiled the uclinux MTD driver > >> and gave it the location of the ROMFS in the 2nd half of RAM. The > >> kernel boots and the uclinux mtd driver finds and mounts it and I get > >> the prompt again, but the behavior is exactly the same, highly > >> unstable, things like "cat" don't work. > >> > >> So next I tried to compile userland WITHOUT XIP to see if that was the > >> problem and this is when I found the exact same issue as Erwin > >> described below. I've set the same options as you have in my > >> congif.arch file and I get the same "ERROR: reloc type R_ARM_PC24 > >> unsupported in this context" all over the place as you did. > >> > >> So, any idea what the issue is? Is it a toolchain problem? Is it a > >> kernel source problem? Again, I'm using the BASE > >> uClinux-dist-20080808, I haven't applied any of the patches as I > >> wanted to work from the known stable base tree. > >> > >> If anyone else has ever encountered the issues I'm describing and you > >> figured out that it's not XIP issues, can anyone let me in on the > >> secret? > >> > >> Finally, if I just want to separate kernel code issues from root > >> filesystem issues, what's the easiest, most stable method for creating > >> and mounting a root filesystem image (System RAM = 8MB, System Flash = > >> 8MB). Thanks for any and all help. > >> > >> Cheers, > >> > >> JB > >> > >> ************************************************************************************************* > >> > >> List: uclinux-dev > >> Subject: [uClinux-dev] errors when linking without XIP > >> From: Erwin Authried <eauth () softsys ! co ! at> > >> Date: 2009-03-23 11:26:51 > >> Message-ID: 1237807611.711.254.camel () justakiss ! home ! at > >> > >> Hi, > >> > >> I have always compiled applications for ARM7TDMI with pic (-fpic > >> -msingle-pic-base) without problems. Now I tried to build without pic, > >> and got lots of > >> > >> ERROR: reloc type R_ARM_PC24 unsupported in this context > >> > >> during linking. After searching the archives, I tried to run elf2flt > >> without the "-a" option. This time, the link succeeds, but I get a > >> > >> BINFMT_FLAT: reloc outside program ... > >> > >> when I try to run the application on the target (I tried several > >> applicatons, all had the same problem). I have used > >> uClinux-dist-20080808 and the snapgear toolchain > >> arm-linux-tools-20070808.tar.gz. > >> I modified vendors/Atmel/AT91/config.arch to disable XIP, and built from > >> scratch: > >> > >> ############################################################################ > >> > >> CPUFLAGS := > >> # VENDOR_CFLAGS # not required here > >> DISABLE_XIP := 1 # XIP works fine > >> DISABLE_MOVE_RODATA := 1 # until we get a toolchain release > >> DISABLE_SHARED_LIBS := 1 > >> # LOPT := -O2 # library is alway 02 > >> # UOPT := -Os # user apps are always Os > >> > >> ############################################################################ > >> > >> Any ideas what's wrong? > >> > >> -Erwin > >> > _______________________________________________ uClinux-dev mailing list [email protected] http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by [email protected] To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
