From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Thu, 30 Jun 2005 08:05:44 -0400 Subject: [U-Boot-Users] Does u-boot relocate absolute symbols? In-Reply-To: References: Message-ID: <42C3E018.9000601@smiths-aerospace.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Andreas Block wrote: > 29.06.2005 17:46:03, "Rune Torgersen" wrote: > > >>I just have to comment on this. >> >> >>>It does not work (because it's simply wrong) to declare >>>fpgadata as follows in pf5200.c >>>(although looking good in the first place, if you think about >>>it, the compiler needs to >>>handle both declarations differently): >>> >>>const unsigned char *fpgadata = 0x400000; /* (with 0x400000 >>>being the address to store >>>the image with TFTP at) */ >>> >> >>Have you tried to do this? >>Because it should work (even if one is declared char [] and the other >>char *) > > > Sure, I've tried this. This is the point, where my problem arose. Attached you find two > small files, you can easily compile under linux (gcc -o arrtest -I ./ ./common.c > ./array.c). The file "common.c" represents the code I can't (don't want to) touch. > "array.c" represents my project dependent code. If you run arrtest it will show to you, > that it is not possible to initialize the array "test" in this manner. After looking at > the disassembly, it is pretty clear, that the compiler has to generate different code > for the two notations. > > Nevertheless, thanks for your hint, > Andreas Block I assume this was a typo and not in your actual test program? --- common.c-original 2005-06-30 08:03:26.286019864 -0400 +++ common.c 2005-06-30 08:03:48.815779191 -0400 @@ -4,7 +4,7 @@ int showwrong(void) { - printf("test[]: 0x%08X\n"); + printf("test[]: 0x%08X\n", (int)test); return 0; } gvb