[U-Boot-Users] Relocation of symbols?
andreas.block at esd-electronics.com
Thu Jun 30 10:10:52 CEST 2005
29.06.2005 19:32:46, Wolfgang Denk <wd at denx.de> wrote:
>In message <8ECMIB8MIIC528283SP05OJFEB784F.42c2ad3d at pc-block> you wrote:
>> >I still can't understand why you cannot simply use an unitialized
>> >pointer, or even one which has a random init value, and then adjust
>> >it in your board specific code, say in a misc_init_r() or maybe even
>> >in a board_early_init_r() function?
>> Hmm, I take this as a refusal to help and a refusal to acquire new information.
>> For me
>Bollocks. Why don't you just take it as what it is: a question, and
>the attempt to understand your situation?
>The attitude you display here does not really add to my motivation to
>dig into this later tonight as I originally intended.
Well, I'm sorry. I didn't want to sound rude. I was a bit dissappointed, because it
seemed to me like you were ignoring great parts of my last post and sort of retreated
to safer grounds.
Perhaps you could explain to me, how you think I could initialize the declared array at
those positions you propose (it's not a problem of finding the referenced functions,
but of knowing how to do it). I've sent a small example as answer to Rune Torgersen,
which shows quite well, that one can't initialize/locate an "open" array (like fpgadata
) by initializing a pointer of the same name. Seemingly it's me, who's failing to
see, but I don't get how your hint helps me with this.
>> this is quite a basic problem, perhaps with my understanding, but meanwhile I guess
>> not with my understanding, but with U-Boot itself. I'm not really looking for
>> a workaround.
>That's a pity, because a workaround is probably easier available.
Sure. The project is actually working. All I'd like to do is to remove the changes done
to common code and understand, where my problem with U-Boot stems from. If it's me,
who's not getting it or if there's perhaps a slightly strange/non-generic behaviour in
U-Boot. It took me quite a while to find out about my initialization problem and the
non-relocated array-content (it was actually my debug output, which stayed in flash and
wasn't of any help, when my PLD programmer killed the PLD and thus the flash access)
and I would like to avoid such pain in the future.
>> The workaround for me, would be to change the common code and do another round of
>I think you could do without such a change. This may require a little
>hack, and may even result in a not strictly standard conforming im-
>plementation, but I think it can be done.
>> failed. And once again, your suggestion to initialize a pointer in my project
>> dependent code, absolutely ignores the fact, that the array is declared in
>> common code as:
>> extern const char walter;
>> Perhaps you don't see a difference to the following notation, which I had to use in
>> my project dependent code:
>> extern const char *walter;
>> But there is one, even if you refuse to recognize. Feel free to ask, if you'd like
>> to know.
>I have no idea why you think I ignored your arguments. I never said
>anything like this. Of course there is a difference. I am perfectly
>aware of this. But does it really prevent you from doing what you
>want to do? There is so many things you can do. For a little demon-
>stration of what can be done in C have a look at the winning entries
>of the IOCCC at http://www.de.ioccc.org/years.html :-)
Well, at first, you cut away three quarters of my last post. Second, you told me in one
of your answers, that the compiler knows no differences between these initializations
and told me, U-Boot wasn't able to distinguish between them either. And no, it does not
entirely prevent me from what I want to do, but it keeps me from doing it the smoothest
way or the way I'd like to do it best.
>> I also wonder, whether the issue with the relocation of statically initialized
>> is solved?
>There is no "issue" from my point of view. We know the situation, and
>we know how to live with it (by manually relocating the pointers).
>When I ran into this situation 5 years ago I didn't find a better
>solution in a reasonable time. Feel free to show me that there is a
I'm afraid, I currently don't have the knowledge, nor the time (at least not at work)
to do it in a better way. But I thought, perhaps you would like to at least discuss the
way it's done now and perhaps, combined with your knowledge of how the things are
running today, come to see a new/better/more generic way of doing it. But please don't
get me wrong again, I certainly don't want to sound like I'm requesting a change in U-
Boot or something alike.
More information about the U-Boot