* [Buildroot] uClibc, gcc get rebuilt on every make
@ 2008-12-09 17:23 Patrick McNeil
2009-07-02 20:38 ` Zac Wheeler
0 siblings, 1 reply; 7+ messages in thread
From: Patrick McNeil @ 2008-12-09 17:23 UTC (permalink / raw)
To: buildroot
I'm using svn24232, arm920t, with gcc and headers on the target. Every
time I run make, even if I haven't made any changes, the cross
compiler toolchain, as well as the target gcc, and uClibc gets
rebuilt, taking about half an hour. Any ideas what this is depending
on? I know that buildroot from a few months ago did not do this.
Also, what is the proper way to rebuild root if I have changed
something - ie changed files in target_skeleton, updates something in
a package directory, etc.? Right now I run this script and it seems to
work ok. If I don't delete /root and .root, the system doesn't seem to
realize that things have changed.
#!/bin/bash
[ -e project_build_arm/phidget_sbc/.root ] && {
echo "Removing Root..."
rm -rf project_build_arm/phidget_sbc/root/
rm project_build_arm/phidget_sbc/.root
}
[ -e build_arm/webif-0.2/.built ] && {
echo "Removing webif..."
rm build_arm/webif-0.2/.built
}
for stamp in $( find build_arm/ | grep .stamp_staging_installed ); do
echo "Removing $stamp..."
rm $stamp
done
for stamp in $( find project_build_arm/phidget_sbc/autotools-stamps -
type f ); do
echo "Removing $stamp..."
rm $stamp
done
--
Patrick McNeil
Lead Developer | Phidgets Inc.
patrick at phidgets.com | www.phidgets.com
--
There are two ways to write error-free programs; only the third works.
-Alan J. Perlis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20081209/2686a70e/attachment.htm
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] uClibc, gcc get rebuilt on every make
2008-12-09 17:23 [Buildroot] uClibc, gcc get rebuilt on every make Patrick McNeil
@ 2009-07-02 20:38 ` Zac Wheeler
2009-07-02 21:07 ` Bernhard Reutner-Fischer
0 siblings, 1 reply; 7+ messages in thread
From: Zac Wheeler @ 2009-07-02 20:38 UTC (permalink / raw)
To: buildroot
On Tue, Dec 9, 2008 at 10:23 AM, Patrick McNeil <patrick@phidgets.com>wrote:
> I'm using svn24232, arm920t, with gcc and headers on the target. Every time
> I run make, even if I haven't made any changes, the cross compiler
> toolchain, as well as the target gcc, and uClibc gets rebuilt, taking about
> half an hour. Any ideas what this is depending on? I know that buildroot
> from a few months ago did not do this.
>
Just in case the issue is still there, this is what I did to resolve it:
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index c8da464..6dff66c 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -481,7 +482,7 @@ uclibc-menuconfig: host-sed $(UCLIBC_DIR)/.config
touch -c $(UCLIBC_DIR)/.config
-$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
+$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_initial)
$(LIBFLOAT_TARGET)
ifneq ($(BR2_TOOLCHAIN_SYSROOT),y)
$(MAKE1) -C $(UCLIBC_DIR) \
PREFIX= \
This also fixes the issue you sent in another mail where libc.a would get
modified after the initial build and so simply typing "make" again was
enough to break symbols in libc.a (e.g. python's division).
The better way would probably to figure out what is touching
$(UCLIBC_DIR)/lib/libc.a after the initial build and fix that so that make
doesn't see a dependency that is newer than the
$(STAGING_DIR)/usr/lib/libc.a target, but I'm not sure that is easily
possible given the build sequence.
Zac
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20090702/ede55513/attachment.htm>
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] uClibc, gcc get rebuilt on every make
2009-07-02 20:38 ` Zac Wheeler
@ 2009-07-02 21:07 ` Bernhard Reutner-Fischer
2009-07-02 23:37 ` Zac Wheeler
0 siblings, 1 reply; 7+ messages in thread
From: Bernhard Reutner-Fischer @ 2009-07-02 21:07 UTC (permalink / raw)
To: buildroot
On Thu, Jul 02, 2009 at 01:38:23PM -0700, Zac Wheeler wrote:
>On Tue, Dec 9, 2008 at 10:23 AM, Patrick McNeil <patrick@phidgets.com>wrote:
>
>> I'm using svn24232, arm920t, with gcc and headers on the target. Every time
>> I run make, even if I haven't made any changes, the cross compiler
>> toolchain, as well as the target gcc, and uClibc gets rebuilt, taking about
>> half an hour. Any ideas what this is depending on? I know that buildroot
>> from a few months ago did not do this.
>>
>
>Just in case the issue is still there, this is what I did to resolve it:
>
>diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
>index c8da464..6dff66c 100644
>--- a/toolchain/uClibc/uclibc.mk
>+++ b/toolchain/uClibc/uclibc.mk
>@@ -481,7 +482,7 @@ uclibc-menuconfig: host-sed $(UCLIBC_DIR)/.config
> touch -c $(UCLIBC_DIR)/.config
>
>
>-$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
>+$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_initial)
This doesn't sounds clean to me. My current working theory:
http://repo.or.cz/w/buildroot.git?a=blob;f=toolchain/uClibc/uclibc.mk;h=5b4e0c6a02daff5a5c498a2d277eb628ca15aad5;hb=HEAD#l509
http://repo.or.cz/w/buildroot.git?a=blob;f=toolchain/uClibc/uclibc.mk;h=5b4e0c6a02daff5a5c498a2d277eb628ca15aad5;hb=HEAD#l550
Again, i invite people to port improvements from my tree to the repo..
HTH,
>$(LIBFLOAT_TARGET)
> ifneq ($(BR2_TOOLCHAIN_SYSROOT),y)
> $(MAKE1) -C $(UCLIBC_DIR) \
> PREFIX= \
>
>This also fixes the issue you sent in another mail where libc.a would get
>modified after the initial build and so simply typing "make" again was
>enough to break symbols in libc.a (e.g. python's division).
>
>The better way would probably to figure out what is touching
>$(UCLIBC_DIR)/lib/libc.a after the initial build and fix that so that make
>doesn't see a dependency that is newer than the
>$(STAGING_DIR)/usr/lib/libc.a target, but I'm not sure that is easily
>possible given the build sequence.
>
>Zac
>_______________________________________________
>buildroot mailing list
>buildroot at busybox.net
>http://lists.busybox.net/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] uClibc, gcc get rebuilt on every make
2009-07-02 21:07 ` Bernhard Reutner-Fischer
@ 2009-07-02 23:37 ` Zac Wheeler
2009-07-03 7:11 ` Bernhard Reutner-Fischer
0 siblings, 1 reply; 7+ messages in thread
From: Zac Wheeler @ 2009-07-02 23:37 UTC (permalink / raw)
To: buildroot
On Thu, Jul 2, 2009 at 2:07 PM, Bernhard Reutner-Fischer <
rep.dot.nop@gmail.com> wrote:
> On Thu, Jul 02, 2009 at 01:38:23PM -0700, Zac Wheeler wrote:
> >On Tue, Dec 9, 2008 at 10:23 AM, Patrick McNeil <patrick@phidgets.com
> >wrote:
> >
> >> I'm using svn24232, arm920t, with gcc and headers on the target. Every
> time
> >> I run make, even if I haven't made any changes, the cross compiler
> >> toolchain, as well as the target gcc, and uClibc gets rebuilt, taking
> about
> >> half an hour. Any ideas what this is depending on? I know that buildroot
> >> from a few months ago did not do this.
> >>
> >
> >Just in case the issue is still there, this is what I did to resolve it:
> >
> >diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
> >index c8da464..6dff66c 100644
> >--- a/toolchain/uClibc/uclibc.mk
> >+++ b/toolchain/uClibc/uclibc.mk
> >@@ -481,7 +482,7 @@ uclibc-menuconfig: host-sed $(UCLIBC_DIR)/.config
> > touch -c $(UCLIBC_DIR)/.config
> >
> >
> >-$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
> >+$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_initial)
>
> This doesn't sounds clean to me. My current working theory:
>
> http://repo.or.cz/w/buildroot.git?a=blob;f=toolchain/uClibc/uclibc.mk;h=5b4e0c6a02daff5a5c498a2d277eb628ca15aad5;hb=HEAD#l509
>
> http://repo.or.cz/w/buildroot.git?a=blob;f=toolchain/uClibc/uclibc.mk;h=5b4e0c6a02daff5a5c498a2d277eb628ca15aad5;hb=HEAD#l550
>
Cool, I didn't know about order-only prerequisites. Or are the additional CC
and FLAGS options important for fixing this issue as well?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20090702/a555cc23/attachment.htm>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] uClibc, gcc get rebuilt on every make
2009-07-02 23:37 ` Zac Wheeler
@ 2009-07-03 7:11 ` Bernhard Reutner-Fischer
0 siblings, 0 replies; 7+ messages in thread
From: Bernhard Reutner-Fischer @ 2009-07-03 7:11 UTC (permalink / raw)
To: buildroot
On Thu, Jul 02, 2009 at 04:37:04PM -0700, Zac Wheeler wrote:
>On Thu, Jul 2, 2009 at 2:07 PM, Bernhard Reutner-Fischer <
>Cool, I didn't know about order-only prerequisites. Or are the additional CC
>and FLAGS options important for fixing this issue as well?
No, they are just a matter of correctness and a different issue.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] uClibc, gcc get rebuilt on every make
@ 2009-07-05 13:12 bogus
2009-07-05 18:56 ` Zac Wheeler
0 siblings, 1 reply; 7+ messages in thread
From: bogus @ 2009-07-05 13:12 UTC (permalink / raw)
To: buildroot
It would be great if you could submit a little patch...
For now, I keep using the first (not clean) option, no time to dive into
the second one right now.
Regards,
Simon
>Le jeu, 02 Jul 2009 ? 04:37:04PM -0700, Zac Wheeler ?crivit:
>Cool, I didn't know about order-only prerequisites. Or are the
>additional CC
>and FLAGS options important for fixing this issue as well?
No, they are just a matter of correctness and a different issue.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] uClibc, gcc get rebuilt on every make
2009-07-05 13:12 bogus
@ 2009-07-05 18:56 ` Zac Wheeler
0 siblings, 0 replies; 7+ messages in thread
From: Zac Wheeler @ 2009-07-05 18:56 UTC (permalink / raw)
To: buildroot
On Sun, Jul 5, 2009 at 6:12 AM, <simon.addareyss@online.fr> wrote:
> It would be great if you could submit a little patch...
>
> For now, I keep using the first (not clean) option, no time to dive into
> the second one right now.
>
This is it - just a pipe before the libc.a dependency to make it order-only:
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index 6dff66c..f9eef88 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -482,7 +482,7 @@ uclibc-menuconfig: host-sed $(UCLIBC_DIR)/.config
touch -c $(UCLIBC_DIR)/.config
-$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
+$(STAGING_DIR)/usr/lib/libc.a: | $(UCLIBC_DIR)/lib/libc.a
ifneq ($(BR2_TOOLCHAIN_SYSROOT),y)
$(MAKE1) -C $(UCLIBC_DIR) \
PREFIX= \
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20090705/8a34d5e5/attachment.htm>
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-07-05 18:56 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-09 17:23 [Buildroot] uClibc, gcc get rebuilt on every make Patrick McNeil
2009-07-02 20:38 ` Zac Wheeler
2009-07-02 21:07 ` Bernhard Reutner-Fischer
2009-07-02 23:37 ` Zac Wheeler
2009-07-03 7:11 ` Bernhard Reutner-Fischer
-- strict thread matches above, loose matches on Subject: below --
2009-07-05 13:12 bogus
2009-07-05 18:56 ` Zac Wheeler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox