All of lore.kernel.org
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] Non-static global variables cause relocation to fail
Date: Fri, 20 Jun 2008 09:47:01 -0500	[thread overview]
Message-ID: <485BC2E5.8040101@freescale.com> (raw)
In-Reply-To: <485B250F.6090600@gmail.com>

Jerry Van Baren wrote:

> That isn't a variable, that is the first line of a struct declaration. 

I didn't include this part (although since the code compiles, it should be
obvious that it exists):

} e;

So I'm defining a global variable called 'e'.  Perhaps the short name is part of
the problem.

> You cut some pretty important information: what the struct is, the 
> actual variable in question, and whether it is initialized.

As Wolfgang pointed out, my assumption that this is a generic problem is flawed,
and it's most likely a problem with my specific implementation.

> I'm guessing from the name "eeprom" that you have a non-zero initializer 
> on it???  

No, no initializer.

> Does it make a difference if it is uninitialized, initialized 
> to {0}, or initialized to non-zero values?

I don't know, I haven't considered it.

I did notice this code in fsl_i2c.c:

#ifdef CFG_SPD_BUS_NUM
static unsigned int i2c_bus_num __attribute__ ((section ("data"))) =
CFG_SPD_BUS_NUM;
#else
static unsigned int i2c_bus_num __attribute__ ((section ("data"))) = 0;
#endif

I wrote this code, but I don't remember why I added the "__attribute__ ((section
("data")))".  I guess I should have commented it, but I wonder if it applies to
my current problem.

> Does it make a difference if it is packed or not (my guess: much less 
> likely than initialization to cause works/broken).

It needs to be packed, otherwise the code won't work.  Sadly, someone defined a
4-byte integer at address 0x72 in the EEPROM.

When I post the full patch, I'll revisit this problem.  Sorry for all the noise.

-- 
Timur Tabi
Linux kernel developer at Freescale

  reply	other threads:[~2008-06-20 14:47 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-19 18:44 [U-Boot-Users] Non-static global variables cause relocation to fail Timur Tabi
2008-06-19 20:45 ` Wolfgang Denk
2008-06-19 20:47   ` Timur Tabi
2008-06-19 20:52     ` Wolfgang Denk
2008-06-19 21:12       ` Timur Tabi
2008-06-19 21:55         ` Wolfgang Denk
2008-06-20  3:33     ` Jerry Van Baren
2008-06-20 14:47       ` Timur Tabi [this message]
2008-06-21  0:27         ` Wolfgang Denk
2008-06-22 17:17         ` Jerry Van Baren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=485BC2E5.8040101@freescale.com \
    --to=timur@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.