From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3] Switch from archive libraries to partial linking
Date: Fri, 19 Nov 2010 19:07:58 -0500 [thread overview]
Message-ID: <201011191908.00162.vapier@gentoo.org> (raw)
In-Reply-To: <20101119080354.DF0DB14EA7E@gemini.denx.de>
On Friday, November 19, 2010 03:03:54 Wolfgang Denk wrote:
> Albert ARIBAUD wrote:
> > Most probably 2); mentioning a file in the linker script either with or
> > without mentioning it on the command line has certainly been done for
> > some time, so I doubt the feature is new; and certainly the doc is about
> > files, not symbols in different files.
>
> There seems to be a (here significant) difference between object files
> on the command line and libraries (which appear to be handled like
> a mere collection of object files).
the difference is that the linker wont bother looking at the duplicated
objects in the archives. from the linker's perspective though, we now have to
completely independent objects. the combined one specified on the command
line and the split up ones in the linker script.
one possible way to fix boards is to stop specifying sub-objects in the linker
script and only specify the combined ones. so in board/tqc/tqm8xx/u-boot.lds,
drop the split objects like lib/zlib.o in favor of the combined one like
lib/libgeneric.o. this might not work for everyone since the combined object
sizes can be a bit large. if everyone was using -ffunction-sections/-fdata-
sections
this however wont work for common/env_embedded.o since it is merged
common/libcommon.o. so to fix that, we'll need to not merge env_embedded.o
into libcommon.o. like in the patch below.
-mike
diff --git a/common/Makefile b/common/Makefile
index e0db382..d38aa7b 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -52,10 +52,10 @@ COBJS-y += cmd_version.o
COBJS-y += env_common.o
COBJS-$(CONFIG_ENV_IS_IN_DATAFLASH) += env_dataflash.o
COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_eeprom.o
-COBJS-$(CONFIG_ENV_IS_EMBEDDED) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_embedded.o
-COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_embedded.o
+XOBJS-$(CONFIG_ENV_IS_EMBEDDED) += env_embedded.o
+XOBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_embedded.o
+XOBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_embedded.o
+XOBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_embedded.o
COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
COBJS-$(CONFIG_ENV_IS_IN_MG_DISK) += env_mgdisk.o
COBJS-$(CONFIG_ENV_IS_IN_MMC) += env_mmc.o
@@ -174,7 +174,7 @@ OBJS := $(addprefix $(obj),$(AOBJS) $(COBJS))
CPPFLAGS += -I..
-all: $(LIB) $(AOBJS)
+all: $(LIB) $(AOBJS) $(XOBJS-y)
$(LIB): $(obj).depend $(OBJS)
$(call cmd_link_o_target, $(OBJS))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20101119/95fb579c/attachment.pgp
next prev parent reply other threads:[~2010-11-20 0:07 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-08 22:04 [U-Boot] [PATCH] Switch from archive libraries to partial linking Sebastien Carlier
2010-11-08 22:10 ` Graeme Russ
2010-11-08 22:34 ` Sebastien Carlier
2010-11-09 6:17 ` Andreas Bießmann
2010-11-09 9:15 ` Andre Schwarz
2010-11-09 17:44 ` [U-Boot] [PATCH v2] " Sebastien Carlier
2010-11-10 8:35 ` Andre Schwarz
2010-11-09 9:48 ` [U-Boot] [PATCH] " Graeme Russ
2010-11-09 11:29 ` Stefano Babic
2010-11-10 6:57 ` Mike Frysinger
2010-11-10 8:01 ` Andreas Bießmann
2010-11-10 8:07 ` [U-Boot] [PATCH v3] " Sebastien Carlier
2010-11-10 8:55 ` Mike Frysinger
2010-11-10 12:24 ` Sebastien Carlier
2010-11-10 21:07 ` Mike Frysinger
2010-11-15 7:51 ` Wolfgang Denk
2010-11-15 8:09 ` Sebastien Carlier
2010-11-15 10:54 ` Wolfgang Denk
2010-11-15 11:33 ` Mike Frysinger
2010-11-15 12:38 ` Mike Frysinger
2010-11-15 12:42 ` Mike Frysinger
2010-11-15 12:52 ` Mike Frysinger
2010-11-15 11:35 ` [U-Boot] [PATCH v4] " Sebastien Carlier
2010-11-15 12:13 ` Sebastien Carlier
2010-11-15 12:39 ` Mike Frysinger
2010-11-16 14:58 ` Detlev Zundel
2010-11-16 16:33 ` Mike Frysinger
2010-11-17 12:30 ` Detlev Zundel
2010-11-17 13:30 ` [U-Boot] [PATCH v3] " Sebastien Carlier
2010-11-17 13:50 ` Wolfgang Denk
2010-11-17 18:06 ` Mike Frysinger
2010-11-17 19:53 ` Sebastien Carlier
2010-11-17 22:19 ` Mike Frysinger
2010-11-18 21:44 ` Wolfgang Denk
2010-11-18 22:08 ` Albert ARIBAUD
2010-11-18 22:33 ` Wolfgang Denk
2010-11-19 6:36 ` Albert ARIBAUD
2010-11-19 8:03 ` Wolfgang Denk
2010-11-20 0:07 ` Mike Frysinger [this message]
2010-11-20 8:38 ` Wolfgang Denk
2010-11-20 8:48 ` Albert ARIBAUD
2010-11-20 9:19 ` Mike Frysinger
2010-11-19 8:04 ` Sebastien Carlier
2010-11-19 7:50 ` Sebastien Carlier
2010-11-19 8:08 ` Wolfgang Denk
2010-11-19 8:34 ` Sebastien Carlier
2010-11-19 11:11 ` Wolfgang Denk
2010-11-19 11:40 ` Albert ARIBAUD
2010-11-19 11:48 ` Wolfgang Denk
2010-11-19 12:11 ` Albert ARIBAUD
2010-11-19 12:33 ` Sebastien Carlier
2010-11-19 12:38 ` Albert ARIBAUD
2010-11-19 13:02 ` Sebastien Carlier
2010-11-19 13:07 ` Reinhard Meyer
2010-11-19 13:33 ` Albert ARIBAUD
2010-11-19 13:40 ` Wolfgang Denk
2010-11-19 12:55 ` Wolfgang Denk
2010-11-19 8:10 ` Mike Frysinger
2010-11-15 19:44 ` Mike Frysinger
2010-11-15 11:44 ` [U-Boot] [PATCH] " Mike Frysinger
2011-01-24 20:54 ` Timur Tabi
2011-01-25 0:03 ` Kumar Gala
2011-01-25 6:36 ` Wolfgang Denk
2011-01-25 8:55 ` Kumar Gala
2011-01-25 16:40 ` Timur Tabi
2011-01-25 17:49 ` Kumar Gala
2011-01-25 18:30 ` Timur Tabi
2011-01-25 19:02 ` Wolfgang Denk
2011-01-25 20:05 ` Scott Wood
2011-01-25 20:19 ` Wolfgang Denk
2011-01-25 20:37 ` Scott Wood
2011-01-25 21:13 ` Wolfgang Denk
2011-01-26 5:22 ` Kumar Gala
2011-01-26 17:26 ` Scott Wood
2011-01-25 18:27 ` Wolfgang Denk
2011-01-25 18:29 ` Timur Tabi
2011-01-25 18:54 ` Wolfgang Denk
2011-01-25 18:57 ` Timur Tabi
2011-01-25 19:05 ` Wolfgang Denk
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=201011191908.00162.vapier@gentoo.org \
--to=vapier@gentoo.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox