From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Sun, 22 Jun 2008 13:17:34 -0400 Subject: [U-Boot-Users] Non-static global variables cause relocation to fail In-Reply-To: <485BC2E5.8040101@freescale.com> References: <20080619204505.48ABD248D2@gemini.denx.de> <485AC5C5.5080709@freescale.com> <485B250F.6090600@gmail.com> <485BC2E5.8040101@freescale.com> Message-ID: <485E892E.9040803@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Timur Tabi wrote: > Jerry Van Baren wrote: [snip] >> 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. It doesn't apply in the original complaint and may be flat out wrong, but I recall having a problem forcing a zero initializer into the data section. Gcc insisted on putting it in bss and, after playing language lawyer with the gcc manual/descriptions/etc, I concluded it was expected behavior of gcc. [snip] > When I post the full patch, I'll revisit this problem. Sorry for all the noise. Interesting quirk. We may give you a hard time, but that just betrays our curiosity. ;-) Best regards, gvb