Skip to contentSkip to conversation

Pull request for branch yem-instrument-build

GIT PULL New Yann E. MORIN 5 participants 25 messages Jan 16, 2013 – Jan 20, 2013

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

Hello All!

This series adds some intrumentation to the pkg-infra so that it is easier for the autobuilders to extract meaningfull information about the reason of failures.

It does so by:
- logging all messages displayed with calls to MESSAGE to a time-stamped log file
- log the last such mesage to a file
- add calls to MESSAGE in the non-package steps of the external toolchain backend
- add calls to MESSAGE in the non-package steps of the crosstool-NG toolchain backend
- add calls to MESAGE in the non-package steps of the internal toolchain backend (gcc, kernel headers, and uClibc)

Although I've tested it with external and internal toolchain backends (not crosstool-NG for now), and although it does work, I expect some polishing to be required. For example, the date is not displayed for the file system images steps (I suspect it's due to second expansion being needed for images, which is not for packages).

So, take this series as a kind of RFC, rather than a final series.

The following changes since commit 10e058b0ee7fd8135fef35bcf24ae985707078c2:

proxychains-ng: copy proxychains.conf to target dir (2013-01-16 13:24:54 +0100)

are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-instrument-build

Yann E. MORIN (6):
pkg-infra: log current message
toolchain/external: sprinkle with some calls to MESSAGE toolchain/crosstool-ng: sprinkle with some calls to MESSAGE toolchain/gcc: sprinkle with some calls to MESSAGE toolchain/kernel-headers: sprinkle with some calls to MESSAGE toolchain/uClibc: sprinkle with some calls to MESSAGE

 package/pkg-utils.mk                             |    9 ++++++++-
 toolchain/gcc/gcc-uclibc-4.x.mk                  |   15 +++++++++++++++
 toolchain/kernel-headers/kernel-headers.mk       |    3 +++
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    3 ++-
 toolchain/toolchain-external/ext-tool.mk         |    8 +++++---
 toolchain/uClibc/uclibc.mk                       |   12 ++++++++++++
 6 files changed, 45 insertions(+), 5 deletions(-)

Regards,
Yann E. MORIN

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/6 pkg-infra: log current message

In order to help the auto-builders (our own, or in-house ones), just log the current message in a file that contains:

    Package: $($(PKG)_NAME)
    Version: $($(PKG)_VERSION)
    Action : Last '>>>' message displayed

For example:
Package: host-fakeroot
Version: 1.18.2
Action : Configuring

If there is no package, then the package name and version are empty, eg.:
Package:
Version:
Action : Generating root filesystem image rootfs.tar

Also, all messages are logged to a file, one per line, with the date each message was generated at, as the number of seconds elapsed since Epoch.

This will hopefully help autobuilders extract the real reason for a failure, and take appropriate action (eg. bug-mail the last git-author of a package...)

---
 package/pkg-utils.mk |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
package/pkg-utils.mk +8 -1
index 835c588..477be57 100644
@@ -64,7 +64,14 @@ INFLATE.xz   = $(XZCAT)
 INFLATE.tar  = cat
 
 # MESSAGE Macro -- display a message in bold type
-MESSAGE     = echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(1)$(TERM_RESET)"
+define MESSAGE
+	echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(1)$(TERM_RESET)";   \
+	echo "$$(date '+%s'): $($(PKG)_NAME) $($(PKG)_VERSION) $(1)"                 \
+	     >>$(BUILD_DIR)/actions.log;                                             \
+	printf "Package: %s\nVersion: %s\nAction : %s\n"                             \
+	       "$($(PKG)_NAME)" "$($(PKG)_VERSION)" $(1)                             \
+	       >$(BUILD_DIR)/last-action
+endef
 TERM_BOLD  := $(shell tput smso)
 TERM_RESET := $(shell tput rmso)
 
Signature · 1 line
1.7.2.5
#2 lore raw

PATCH 1/6 pkg-infra: log current message

Quoted 53 lines · Yann E. MORIN

In order to help the auto-builders (our own, or in-house ones), just log the current message in a file that contains:

    Package: $($(PKG)_NAME)
    Version: $($(PKG)_VERSION)
    Action : Last '>>>' message displayed

For example:
Package: host-fakeroot
Version: 1.18.2
Action : Configuring

If there is no package, then the package name and version are empty, eg.:
Package:
Version:
Action : Generating root filesystem image rootfs.tar

Also, all messages are logged to a file, one per line, with the date each message was generated at, as the number of seconds elapsed since Epoch.

This will hopefully help autobuilders extract the real reason for a failure, and take appropriate action (eg. bug-mail the last git-author of a package...)

---
 package/pkg-utils.mk |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
package/pkg-utils.mk +8 -2
index 835c588..477be57 100644
@@ -64,7 +64,14 @@ INFLATE.xz   = $(XZCAT)
 INFLATE.tar  = cat
 
 # MESSAGE Macro -- display a message in bold type
-MESSAGE     = echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(1)$(TERM_RESET)"
+define MESSAGE
+       echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(1)$(TERM_RESET)";   \
+       echo "$$(date '+%s'): $($(PKG)_NAME) $($(PKG)_VERSION) $(1)"                 \
+            >>$(BUILD_DIR)/actions.log;                                             \
+       printf "Package: %s\nVersion: %s\nAction : %s\n"                             \
+              "$($(PKG)_NAME)" "$($(PKG)_VERSION)" $(1)                             \
+              >$(BUILD_DIR)/last-action
+endef
 TERM_BOLD  := $(shell tput smso)
 TERM_RESET := $(shell tput rmso)
 
--

1.7.2.5

Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Looks good to me

Signature · 2 lines
Regards,
Markos
#3 lore raw

PATCH 1/6 pkg-infra: log current message

In reply to Yann E. MORIN
Quoted 11 lines · Yann E. MORIN

In order to help the auto-builders (our own, or in-house ones), just log the current message in a file that contains:

     Package: $($(PKG)_NAME)
     Version: $($(PKG)_VERSION)
     Action : Last '>>>' message displayed

For example:
Package: host-fakeroot
Version: 1.18.2
Action : Configuring

Quoted 5 lines

If there is no package, then the package name and version are empty, eg.:
Package:
Version:
Action : Generating root filesystem image rootfs.tar

I'm a bit concerned because this is another blocker for top-level
parallel build (the contents of last-action will be incorrect).

Also:

Quoted 3 lines

Also, all messages are logged to a file, one per line, with the date each message was generated at, as the number of seconds elapsed since Epoch.

I think this one should be sufficient for the autobuilder. It's exactly
what is displayed now. You could make it more structured and easily parseable with an extra colon:

echo "$$(date '+%s'): $($(PKG)_NAME) $($(PKG)_VERSION): $(1)"

Note that this one is not an issue for parallel builds, because it will
be done in a single write() call.

Regards,
Arnout

Quoted 29 lines

This will hopefully help autobuilders extract the real reason for a failure, and take appropriate action (eg. bug-mail the last git-author of a package...)

---
  package/pkg-utils.mk |    9 ++++++++-
  1 files changed, 8 insertions(+), 1 deletions(-)
package/pkg-utils.mk +8 -1
index 835c588..477be57 100644
@@ -64,7 +64,14 @@ INFLATE.xz   = $(XZCAT)
  INFLATE.tar  = cat
 
  # MESSAGE Macro -- display a message in bold type
-MESSAGE     = echo "$(TERM_BOLD)>>>  $($(PKG)_NAME) $($(PKG)_VERSION) $(1)$(TERM_RESET)"
+define MESSAGE
+	echo "$(TERM_BOLD)>>>  $($(PKG)_NAME) $($(PKG)_VERSION) $(1)$(TERM_RESET)";   \
+	echo "$$(date '+%s'): $($(PKG)_NAME) $($(PKG)_VERSION) $(1)"                 \
+	>>$(BUILD_DIR)/actions.log;                                             \
+	printf "Package: %s\nVersion: %s\nAction : %s\n"                             \
+	       "$($(PKG)_NAME)" "$($(PKG)_VERSION)" $(1)                             \
+	>$(BUILD_DIR)/last-action
+endef
  TERM_BOLD  := $(shell tput smso)
  TERM_RESET := $(shell tput rmso)
 
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#4 lore raw

PATCH 1/6 pkg-infra: log current message

Arnout, All,

Quoted 6 lines · On Sunday 20 January 2013 Arnout Vandecappelle wrote:
Quoted 5 lines · Yann E. MORIN

In order to help the auto-builders (our own, or in-house ones), just log the current message in a file that contains:

     Package: $($(PKG)_NAME)
     Version: $($(PKG)_VERSION)
     Action : Last '>>>' message displayed

[--SNIP--]

Quoted 2 lines

I'm a bit concerned because this is another blocker for top-level
parallel build (the contents of last-action will be incorrect).

Do we really want to go for top-level parallel builds? This has been discussed at length many times, and the drawbacks far outweight any potential advantages.

Quoted 6 lines
Quoted 3 lines

Also, all messages are logged to a file, one per line, with the date each message was generated at, as the number of seconds elapsed since Epoch.

I think this one should be sufficient for the autobuilder. It's exactly
what is displayed now.

*IF* we were to implement top-level // build, then that log file would not be of any use either, as the last one to fail would not necessarily be the last entry:

- one job starts configuring package foo --> logged
- a second jobs starts building package bar --> logged
- foo configuration fails

In this case, the last log is not the failed action.

If we do really want top-level // build, then instrumenting the build in the MESSAGE function is not adequate.

But I think top-level // builds should be avoided...

Quoted 3 lines

You could make it more structured and easily parseable with an extra colon:
echo "$$(date '+%s'): $($(PKG)_NAME) $($(PKG)_VERSION): $(1)"

An extra colon will not make it easier to parse. With the current format, it's already easy to extract each fields:

sed -r -e 's/^([[:digit:]]+) ([^[:space:]]*) ([^[:space:]]*) (.+)$/date: \1\npackage: \2\nversion: \3\nmesage: \4\n/;'

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH 1/6 pkg-infra: log current message

In reply to Arnout Vandecappelle

Dear Arnout Vandecappelle,

Quoted 2 lines · Arnout Vandecappelle

I'm a bit concerned because this is another blocker for top-level
parallel build (the contents of last-action will be incorrect).

I agree that top-level parallel build would be nice, but I'm wondering whether it is realistic to think we will support it one day. The main problem I'm seeing with top-level parallel build is that we need to create a per-package sysroot in order to get reproducible builds.

For the moment, we install all the libraries and headers in $(STAGING_DIR), and we point all packages to $(STAGING_DIR) as the toolchain sysroot, so that they find their required dependencies.

For now, the fact that the sysroot is unique and global is not a problem as the build is completely serialized, and therefore reproducible. If package A has an optional dependency on package B (not expressed in Buildroot dependencies, but package A detects if B is available in its configure script, and if it is, then uses B), then either B is built before A, and A has B support, or B is built after A, and A doesn't have B support.

If you switch to top-level parallel build, then sometimes, B will be built before A, sometimes after, leading to A sometimes having B support, sometimes B.

Of course, one way of seeing this is "that's a Buildroot bug, package A should explicit its optional dependency on package B in its .mk file". Unfortunately, in practice, it's going to be very hard to track *all* those optional dependencies, especially when we bump package versions and those bumps introduce need optional dependencies.

The only way to solve this is to create a per-package sysroot, in which we install only the headers and libraries that the package explicitly list as part of its dependencies. I know OpenBricks is doing that. And I remember discussing with the OE-lite maintainer as this problem being in his opinion the #1 reliability problem in OpenEmbedded.

Do we want to implement this per-package sysroot thing?

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#6 lore raw

PATCH 1/6 pkg-infra: log current message

Thomas, Arnout, All,

Quoted 9 lines · On Sunday 20 January 2013 Thomas Petazzoni wrote:

Dear Arnout Vandecappelle,

Quoted 2 lines · Arnout Vandecappelle

I'm a bit concerned because this is another blocker for top-level
parallel build (the contents of last-action will be incorrect).

I agree that top-level parallel build would be nice, but I'm wondering whether it is realistic to think we will support it one day.

[--SNIP--]

Quoted 1 line

Do we want to implement this per-package sysroot thing?

My stance on the subject is: no.

Although top-level // builds would be nice, as it would have the potential to greatly speed up builds (expecially with many packages enabled), this would complexifies Buildroot to a point where things will be much harder to follow, understand, debug and fix.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#7 lore raw

PATCH 2/6 toolchain/external: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/toolchain-external/ext-tool.mk |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
toolchain/toolchain-external/ext-tool.mk +5 -3
index 649e3a3..04f9882 100644
@@ -325,7 +325,7 @@ endif
 # matches the configuration provided in Buildroot: ABI, C++ support,
 # type of C library and all C library features.
 $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
-	@echo "Checking external toolchain settings"
+	@$(call MESSAGE,"Checking external toolchain settings")
 	$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
 	$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
 	SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \
@@ -414,7 +414,7 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
 	ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
 	mkdir -p $(TARGET_DIR)/lib ; \
 	if test -z "$(BR2_PREFER_STATIC_LIB)" ; then \
-		echo "Copy external toolchain libraries to target..." ; \
+		$(call MESSAGE,"Copy external toolchain libraries to target...") ; \
 		for libs in $(LIB_EXTERNAL_LIBS); do \
 			$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/lib); \
 		done ; \
@@ -422,12 +422,13 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
 			$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/usr/lib); \
 		done ; \
 	fi ; \
-	echo "Copy external toolchain sysroot to staging..." ; \
+	$(call MESSAGE,"Copy external toolchain sysroot to staging...") ; \
 	$(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR},$${SUPPORT_LIB_DIR}) ; \
 	if [ -L $${ARCH_SYSROOT_DIR}/lib64 ] ; then \
 		$(call create_lib64_symlinks) ; \
 	fi ; \
 	if test x"$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)" == x"y"; then \
+		$(call MESSAGE,"Copying gdbserver") ; \
 		gdbserver_found=0 ; \
 		for d in $${ARCH_SYSROOT_DIR} $${ARCH_SYSROOT_DIR}/../debug-root/ ; do \
 			if test -f $${d}/usr/bin/gdbserver ; then \
@@ -446,6 +447,7 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
 # Build toolchain wrapper for preprocessor, C and C++ compiler, and setup
 # symlinks for everything else
 $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(STAMP_DIR)/ext-toolchain-installed
+	$(Q)$(call MESSAGE,"Building ext-toolchain wrapper")
 	mkdir -p $(HOST_DIR)/usr/bin; cd $(HOST_DIR)/usr/bin; \
 	for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \
 		base=$${i##*/}; \
Signature · 1 line
1.7.2.5
#8 lore raw

PATCH 2/6 toolchain/external: sprinkle with some calls to MESSAGE

Quoted 4 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

Quoted 18 lines
---
  toolchain/toolchain-external/ext-tool.mk |    8 +++++---
  1 files changed, 5 insertions(+), 3 deletions(-)
toolchain/toolchain-external/ext-tool.mk +1 -1
index 649e3a3..04f9882 100644
@@ -325,7 +325,7 @@ endif
  # matches the configuration provided in Buildroot: ABI, C++ support,
  # type of C library and all C library features.
  $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
-	@echo "Checking external toolchain settings"
+	@$(call MESSAGE,"Checking external toolchain settings")
  	$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
  	$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
  	SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \

toolchain/toolchain-external/ext-tool.mk $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked · line 417

Quoted 5 lines
toolchain/toolchain-external/ext-tool.mk +1 -1
@@ -414,7 +414,7 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
  	ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
  	mkdir -p $(TARGET_DIR)/lib ; \
  	if test -z "$(BR2_PREFER_STATIC_LIB)" ; then \
-		echo "Copy external toolchain libraries to target..." ; \
+		$(call MESSAGE,"Copy external toolchain libraries to target...") ; \

You could fix this one to "Copying".

toolchain/toolchain-external/ext-tool.mk $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked · line 425

Quoted 9 lines
toolchain/toolchain-external/ext-tool.mk +1 -1
  		for libs in $(LIB_EXTERNAL_LIBS); do \
  			$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/lib); \
  		done ; \
@@ -422,12 +422,13 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
  			$(call copy_toolchain_lib_root,$${ARCH_SYSROOT_DIR},$${SUPPORT_LIB_DIR},$${ARCH_LIB_DIR},$$libs,/usr/lib); \
  		done ; \
  	fi ; \
-	echo "Copy external toolchain sysroot to staging..." ; \
+	$(call MESSAGE,"Copy external toolchain sysroot to staging...") ; \

And this one.

Regards,
Arnout

Quoted 17 lines
toolchain/toolchain-external/ext-tool.mk +2 -0
  	$(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR},$${SUPPORT_LIB_DIR}) ; \
  	if [ -L $${ARCH_SYSROOT_DIR}/lib64 ] ; then \
  		$(call create_lib64_symlinks) ; \
  	fi ; \
  	if test x"$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)" == x"y"; then \
+		$(call MESSAGE,"Copying gdbserver") ; \
  		gdbserver_found=0 ; \
  		for d in $${ARCH_SYSROOT_DIR} $${ARCH_SYSROOT_DIR}/../debug-root/ ; do \
  			if test -f $${d}/usr/bin/gdbserver ; then \
@@ -446,6 +447,7 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
  # Build toolchain wrapper for preprocessor, C and C++ compiler, and setup
  # symlinks for everything else
  $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(STAMP_DIR)/ext-toolchain-installed
+	$(Q)$(call MESSAGE,"Building ext-toolchain wrapper")
  	mkdir -p $(HOST_DIR)/usr/bin; cd $(HOST_DIR)/usr/bin; \
  	for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \
  		base=$${i##*/}; \
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#9 lore raw

PATCH 3/6 toolchain/crosstool-ng: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +2 -1
index c09f732..be14e08 100644
@@ -68,9 +68,9 @@ $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built
 	$(Q)mkdir -p $(TARGET_DIR)/lib
 	$(Q)CTNG_TUPLE="$$( $(call ctng,show-tuple 2>&1) )";                \
 	    CTNG_SYSROOT="$(HOST_DIR)/usr/$${CTNG_TUPLE}/sysroot";          \
+	    $(call MESSAGE,"Copy external toolchain libraries to target..."); \
 	    echo "CTNG_TUPLE='$${CTNG_TUPLE}'";                             \
 	    echo "CTNG_SYSROOT='$${CTNG_SYSROOT}'";                         \
-	    echo "Copy external toolchain libraries to target...";          \
 	    for libs in $(CTNG_LIBS_LIB); do                                \
 	        $(call copy_toolchain_lib_root,$${CTNG_SYSROOT},,lib,$$libs,/lib); \
 	    done;                                                           \
@@ -85,6 +85,7 @@ $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built
 #       depending on the selected C library. Those deps are added later
 
 $(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/.config
+	$(Q)$(call MESSAGE,"Building the toolchain")
 	$(Q)$(call ctng,build.$(PARALLEL_JOBS))
 	$(Q)printf "\n"
 	$(Q)touch $@
Signature · 1 line
1.7.2.5
#10 lore raw

PATCH 3/6 toolchain/crosstool-ng: sprinkle with some calls to MESSAGE

Quoted 4 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

toolchain/toolchain-crosstool-ng/crosstool-ng.mk $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built · line 71

Quoted 13 lines
---
  toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +1 -0
index c09f732..be14e08 100644
@@ -68,9 +68,9 @@ $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built
  	$(Q)mkdir -p $(TARGET_DIR)/lib
  	$(Q)CTNG_TUPLE="$$( $(call ctng,show-tuple 2>&1) )";                \
  	    CTNG_SYSROOT="$(HOST_DIR)/usr/$${CTNG_TUPLE}/sysroot";          \
+	    $(call MESSAGE,"Copy external toolchain libraries to target..."); \

You could correct this to "Copying".

toolchain/toolchain-crosstool-ng/crosstool-ng.mk $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built · line 73

Quoted 2 lines
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +0 -0
  	    echo "CTNG_TUPLE='$${CTNG_TUPLE}'";                             \
  	    echo "CTNG_SYSROOT='$${CTNG_SYSROOT}'";                         \

What are these two echoes doing there? git blame points to you, Yann...

toolchain/toolchain-crosstool-ng/crosstool-ng.mk $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built · line 88

Quoted 9 lines
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +1 -1
-	    echo "Copy external toolchain libraries to target...";          \
  	    for libs in $(CTNG_LIBS_LIB); do                                \
  	        $(call copy_toolchain_lib_root,$${CTNG_SYSROOT},,lib,$$libs,/lib); \
  	    done;                                                           \
@@ -85,6 +85,7 @@ $(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built
  #       depending on the selected C library. Those deps are added later
 
  $(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/.config
+	$(Q)$(call MESSAGE,"Building the toolchain")

Just to make things crystal clear when it appears in autobuilder results:

"Building the crosstool-ng toolchain"

Regards,
Arnout

Quoted 3 lines
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +0 -0
  	$(Q)$(call ctng,build.$(PARALLEL_JOBS))
  	$(Q)printf "\n"
  	$(Q)touch $@
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#11 lore raw

PATCH 3/6 toolchain/crosstool-ng: sprinkle with some calls to MESSAGE

Arnout, All,

Quoted 4 lines · On Sunday 20 January 2013 Arnout Vandecappelle wrote:
Quoted 2 lines
  	    echo "CTNG_TUPLE='$${CTNG_TUPLE}'";                             \
  	    echo "CTNG_SYSROOT='$${CTNG_SYSROOT}'";                         \

What are these two echoes doing there? git blame points to you, Yann...

They've been there from the beginning. IIRC, I used those during the initial ct-ng backend integration, as a debug thingy.

I guess they can now be removed, of course.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#12 lore raw

PATCH 4/6 toolchain/gcc: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/gcc/gcc-uclibc-4.x.mk |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
toolchain/gcc/gcc-uclibc-4.x.mk +15 -0
index b0d741b..09d5dc1 100644
@@ -247,6 +247,7 @@ $(DL_DIR)/$(GCC_SOURCE):
 
 gcc-unpacked: $(GCC_DIR)/.patched
 $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
+	$(Q)$(call MESSAGE,"Extracting gcc")
 	mkdir -p $(TOOLCHAIN_DIR)
 	rm -rf $(GCC_DIR)
 	$(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
@@ -259,6 +260,7 @@ endif
 
 gcc-patched: $(GCC_DIR)/.patched
 $(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
+	$(Q)$(call MESSAGE,"Patching gcc")
 	# Apply any files named gcc-*.patch from the source directory to gcc
 ifneq ($(wildcard $(GCC_PATCH_DIR)),)
 	support/scripts/apply-patches.sh $(GCC_DIR) $(GCC_PATCH_DIR) \*.patch
@@ -279,6 +281,7 @@ endif
 GCC_BUILD_DIR1:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-initial
 
 $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
+	$(Q)$(call MESSAGE,"Configuring gcc pass-1")
 	mkdir -p $(GCC_BUILD_DIR1)
 	(cd $(GCC_BUILD_DIR1); rm -rf config.cache; \
 		$(HOST_CONFIGURE_OPTS) \
@@ -314,6 +317,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
 	touch $@
 
 $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
+	$(Q)$(call MESSAGE,"Building gcc pass-1")
 ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
 	$(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
 else
@@ -323,6 +327,7 @@ endif
 
 gcc_initial=$(GCC_BUILD_DIR1)/.installed
 $(gcc_initial) $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
+	$(Q)$(call MESSAGE,"Installing gcc pass-1")
 	PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
 	touch $(gcc_initial)
 
@@ -346,6 +351,7 @@ GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
 # the step or libgcc will not build...
 
 $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
+	$(Q)$(call MESSAGE,"Configuring gcc pass-2")
 	mkdir -p $(GCC_BUILD_DIR2)
 	(cd $(GCC_BUILD_DIR2); rm -rf config.cache; \
 		$(HOST_CONFIGURE_OPTS) \
@@ -380,6 +386,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
 	touch $@
 
 $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
+	$(Q)$(call MESSAGE,"Building gcc pass-2")
 	# gcc >= 4.3.0 have to also build all-target-libgcc
 ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
 	$(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) all-gcc all-target-libgcc
@@ -390,6 +397,7 @@ endif
 
 gcc_intermediate=$(GCC_BUILD_DIR2)/.installed
 $(gcc_intermediate): $(GCC_BUILD_DIR2)/.compiled
+	$(Q)$(call MESSAGE,"Installing gcc pass-2")
 	# gcc >= 4.3.0 have to also install install-target-libgcc
 ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
 	PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install-gcc install-target-libgcc
@@ -421,6 +429,7 @@ gcc_intermediate-dirclean:
 
 GCC_BUILD_DIR3:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-final
 $(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
+	$(Q)$(call MESSAGE,"Configuring gcc final")
 	mkdir -p $(GCC_BUILD_DIR3)
 	# Important! Required for limits.h to be fixed.
 	ln -snf ../include/ $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
@@ -457,10 +466,12 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
 	touch $@
 
 $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
+	$(Q)$(call MESSAGE,"Building gcc final")
 	$(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR3) all
 	touch $@
 
 $(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
+	$(Q)$(call MESSAGE,"Installing gcc final")
 	PATH=$(TARGET_PATH) $(MAKE) \
 		-C $(GCC_BUILD_DIR3) install
 	if [ -d "$(STAGING_DIR)/lib64" ]; then \
@@ -492,6 +503,7 @@ endif
 	touch $@
 
 $(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR3)/.installed
+	$(Q)$(call MESSAGE,"Installing gcc final libraries to staging")
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
 	# These go in /lib, so...
 	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
@@ -548,6 +560,7 @@ $(GCC_BUILD_DIR4)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed
 	touch $@
 
 $(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
+	$(Q)$(call MESSAGE,"Configuring gcc on target")
 	(cd $(GCC_BUILD_DIR4); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(TARGET_CONFIGURE_ARGS) \
@@ -586,6 +599,7 @@ $(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
 	touch $@
 
 $(GCC_BUILD_DIR4)/.compiled: $(GCC_BUILD_DIR4)/.configured
+	$(Q)$(call MESSAGE,"Building gcc on target")
 	PATH=$(TARGET_PATH) \
 	$(MAKE) -C $(GCC_BUILD_DIR4) all
 	touch $@
@@ -598,6 +612,7 @@ GCC_INCLUDE_DIR:=include-fixed
 endif
 
 $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR4)/.compiled
+	$(Q)$(call MESSAGE,"Installing gcc on target")
 	PATH=$(TARGET_PATH) DESTDIR=$(TARGET_DIR) \
 		$(MAKE1) -C $(GCC_BUILD_DIR4) install
 	# Remove broken specs file (cross compile flag is set).
Signature · 1 line
1.7.2.5
#13 lore raw

PATCH 4/6 toolchain/gcc: sprinkle with some calls to MESSAGE

Quoted 132 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/gcc/gcc-uclibc-4.x.mk |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
toolchain/gcc/gcc-uclibc-4.x.mk +15 -1
index b0d741b..09d5dc1 100644
@@ -247,6 +247,7 @@ $(DL_DIR)/$(GCC_SOURCE):
 
 gcc-unpacked: $(GCC_DIR)/.patched
 $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
+       $(Q)$(call MESSAGE,"Extracting gcc")
        mkdir -p $(TOOLCHAIN_DIR)
        rm -rf $(GCC_DIR)
        $(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
@@ -259,6 +260,7 @@ endif
 
 gcc-patched: $(GCC_DIR)/.patched
 $(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
+       $(Q)$(call MESSAGE,"Patching gcc")
        # Apply any files named gcc-*.patch from the source directory to gcc
 ifneq ($(wildcard $(GCC_PATCH_DIR)),)
        support/scripts/apply-patches.sh $(GCC_DIR) $(GCC_PATCH_DIR) \*.patch
@@ -279,6 +281,7 @@ endif
 GCC_BUILD_DIR1:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-initial
 
 $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
+       $(Q)$(call MESSAGE,"Configuring gcc pass-1")
        mkdir -p $(GCC_BUILD_DIR1)
        (cd $(GCC_BUILD_DIR1); rm -rf config.cache; \
                $(HOST_CONFIGURE_OPTS) \
@@ -314,6 +317,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
        touch $@
 
 $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
+       $(Q)$(call MESSAGE,"Building gcc pass-1")
 ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
        $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
 else
@@ -323,6 +327,7 @@ endif
 
 gcc_initial=$(GCC_BUILD_DIR1)/.installed
 $(gcc_initial) $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
+       $(Q)$(call MESSAGE,"Installing gcc pass-1")
        PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
        touch $(gcc_initial)
 
@@ -346,6 +351,7 @@ GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
 # the step or libgcc will not build...
 
 $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
+       $(Q)$(call MESSAGE,"Configuring gcc pass-2")
        mkdir -p $(GCC_BUILD_DIR2)
        (cd $(GCC_BUILD_DIR2); rm -rf config.cache; \
                $(HOST_CONFIGURE_OPTS) \
@@ -380,6 +386,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
        touch $@
 
 $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
+       $(Q)$(call MESSAGE,"Building gcc pass-2")
        # gcc >= 4.3.0 have to also build all-target-libgcc
 ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
        $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) all-gcc all-target-libgcc
@@ -390,6 +397,7 @@ endif
 
 gcc_intermediate=$(GCC_BUILD_DIR2)/.installed
 $(gcc_intermediate): $(GCC_BUILD_DIR2)/.compiled
+       $(Q)$(call MESSAGE,"Installing gcc pass-2")
        # gcc >= 4.3.0 have to also install install-target-libgcc
 ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
        PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install-gcc install-target-libgcc
@@ -421,6 +429,7 @@ gcc_intermediate-dirclean:
 
 GCC_BUILD_DIR3:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-final
 $(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
+       $(Q)$(call MESSAGE,"Configuring gcc final")
        mkdir -p $(GCC_BUILD_DIR3)
        # Important! Required for limits.h to be fixed.
        ln -snf ../include/ $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
@@ -457,10 +466,12 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
        touch $@
 
 $(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
+       $(Q)$(call MESSAGE,"Building gcc final")
        $(GCC_CONF_ENV) $(MAKE) -C $(GCC_BUILD_DIR3) all
        touch $@
 
 $(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
+       $(Q)$(call MESSAGE,"Installing gcc final")
        PATH=$(TARGET_PATH) $(MAKE) \
                -C $(GCC_BUILD_DIR3) install
        if [ -d "$(STAGING_DIR)/lib64" ]; then \
@@ -492,6 +503,7 @@ endif
        touch $@
 
 $(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR3)/.installed
+       $(Q)$(call MESSAGE,"Installing gcc final libraries to staging")
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
        # These go in /lib, so...
        rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
@@ -548,6 +560,7 @@ $(GCC_BUILD_DIR4)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed
        touch $@
 
 $(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
+       $(Q)$(call MESSAGE,"Configuring gcc on target")
        (cd $(GCC_BUILD_DIR4); rm -rf config.cache; \
                $(TARGET_CONFIGURE_OPTS) \
                $(TARGET_CONFIGURE_ARGS) \
@@ -586,6 +599,7 @@ $(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
        touch $@
 
 $(GCC_BUILD_DIR4)/.compiled: $(GCC_BUILD_DIR4)/.configured
+       $(Q)$(call MESSAGE,"Building gcc on target")
        PATH=$(TARGET_PATH) \
        $(MAKE) -C $(GCC_BUILD_DIR4) all
        touch $@
@@ -598,6 +612,7 @@ GCC_INCLUDE_DIR:=include-fixed
 endif
 
 $(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR4)/.compiled
+       $(Q)$(call MESSAGE,"Installing gcc on target")
        PATH=$(TARGET_PATH) DESTDIR=$(TARGET_DIR) \
                $(MAKE1) -C $(GCC_BUILD_DIR4) install
        # Remove broken specs file (cross compile flag is set).
--

1.7.2.5

Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Looks good to me

Signature · 2 lines
Regards,
Markos
#14 lore raw

PATCH 4/6 toolchain/gcc: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN
Quoted 4 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

Quoted 4 lines
---
  toolchain/gcc/gcc-uclibc-4.x.mk |   15 +++++++++++++++
  1 files changed, 15 insertions(+), 0 deletions(-)

[snip]

toolchain/gcc/gcc-uclibc-4.x.mk endif · line 506

Quoted 2 lines
  $(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR3)/.installed
toolchain/gcc/gcc-uclibc-4.x.mk +1 -0
+	$(Q)$(call MESSAGE,"Installing gcc final libraries to staging")

Target and staging, actually.

Regards,
Arnout

Quoted 3 lines
  ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
  	# These go in /lib, so...
  	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*

[snip]

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#15 lore raw

PATCH 5/6 toolchain/kernel-headers: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/kernel-headers/kernel-headers.mk |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
toolchain/kernel-headers/kernel-headers.mk +3 -0
index 568c192..53c4a58 100644
@@ -48,6 +48,7 @@ endif
 LINUX_HEADERS_DEPENDS:=
 
 $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
+	$(Q)$(call MESSAGE,"Extracting kernel headers")
 	rm -rf $(LINUX_HEADERS_DIR)
 	$(INSTALL) -d $(@D)
 	$(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | \
@@ -55,6 +56,7 @@ $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
 	touch $@
 
 $(LINUX_HEADERS_UNPACK_DIR)/.patched: $(LINUX_HEADERS_UNPACK_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
+	$(Q)$(call MESSAGE,"Patching kernel headers")
 	support/scripts/apply-patches.sh $(LINUX_HEADERS_UNPACK_DIR) toolchain/kernel-headers \
 		linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
 ifneq ($(KERNEL_HEADERS_PATCH_DIR),)
@@ -64,6 +66,7 @@ endif
 	touch $@
 
 $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
+	$(Q)$(call MESSAGE,"Installing kernel headers")
 	(cd $(LINUX_HEADERS_UNPACK_DIR); \
 	 $(MAKE) ARCH=$(KERNEL_ARCH) \
 		HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
Signature · 1 line
1.7.2.5
#16 lore raw

PATCH 5/6 toolchain/kernel-headers: sprinkle with some calls to MESSAGE

Quoted 39 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/kernel-headers/kernel-headers.mk |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
toolchain/kernel-headers/kernel-headers.mk +3 -1
index 568c192..53c4a58 100644
@@ -48,6 +48,7 @@ endif
 LINUX_HEADERS_DEPENDS:=
 
 $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
+       $(Q)$(call MESSAGE,"Extracting kernel headers")
        rm -rf $(LINUX_HEADERS_DIR)
        $(INSTALL) -d $(@D)
        $(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | \
@@ -55,6 +56,7 @@ $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
        touch $@
 
 $(LINUX_HEADERS_UNPACK_DIR)/.patched: $(LINUX_HEADERS_UNPACK_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
+       $(Q)$(call MESSAGE,"Patching kernel headers")
        support/scripts/apply-patches.sh $(LINUX_HEADERS_UNPACK_DIR) toolchain/kernel-headers \
                linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
 ifneq ($(KERNEL_HEADERS_PATCH_DIR),)
@@ -64,6 +66,7 @@ endif
        touch $@
 
 $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
+       $(Q)$(call MESSAGE,"Installing kernel headers")
        (cd $(LINUX_HEADERS_UNPACK_DIR); \
         $(MAKE) ARCH=$(KERNEL_ARCH) \
                HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
--

1.7.2.5

Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Looks good to me

Signature · 2 lines
Regards,
Markos
#17 lore raw

PATCH 5/6 toolchain/kernel-headers: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN
Quoted 4 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#18 lore raw

PATCH 6/6 toolchain/uClibc: sprinkle with some calls to MESSAGE

In reply to Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/uClibc/uclibc.mk |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
toolchain/uClibc/uclibc.mk +12 -0
index 055267c..b45e85c 100644
@@ -66,6 +66,7 @@ $(DL_DIR)/$(UCLIBC_SOURCE):
 
 uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
 $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
+	$(Q)$(call MESSAGE,"Extracting uClibc")
 	mkdir -p $(TOOLCHAIN_DIR)
 	rm -rf $(UCLIBC_DIR)
 	$(UCLIBC_CAT) $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
@@ -73,6 +74,7 @@ $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
 
 uclibc-patched: $(UCLIBC_DIR)/.patched
 $(UCLIBC_DIR)/.patched: $(UCLIBC_DIR)/.unpacked
+	$(Q)$(call MESSAGE,"Patching uClibc")
 ifneq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
 	support/scripts/apply-patches.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) \
 		uClibc-$(UCLIBC_VERSION)-\*.patch \
@@ -86,6 +88,7 @@ endif
 
 # Some targets may wish to provide their own UCLIBC_CONFIG_FILE...
 $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.patched $(UCLIBC_CONFIG_FILE)
+	$(Q)$(call MESSAGE,"Pre-configuring uClibc")
 	cp -f $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.oldconfig
 	$(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
 		-e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
@@ -370,6 +373,7 @@ endif
 endif
 
 $(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
+	$(Q)$(call MESSAGE,"Configuring uClibc")
 	cp -f $(UCLIBC_DIR)/.oldconfig $(UCLIBC_DIR)/.config
 	mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/usr/include
 	mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib
@@ -393,6 +397,7 @@ $(UCLIBC_DIR)/.config: | host-ccache
 endif
 
 $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.config
+	$(Q)$(call MESSAGE,"Installing uClibc headers")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
 		PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
@@ -415,6 +420,7 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
 	touch $@
 
 $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate) $(LIBFLOAT_TARGET)
+	$(Q)$(call MESSAGE,"Building uClibc")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
 		PREFIX= \
@@ -440,6 +446,7 @@ uclibc-menuconfig: dirs $(UCLIBC_DIR)/.config
 
 
 $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
+	$(Q)$(call MESSAGE,"Installing uClibc to staging dir")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
 		PREFIX=$(STAGING_DIR) \
@@ -470,6 +477,7 @@ $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
 
 ifneq ($(TARGET_DIR),)
 $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
+	$(Q)$(call MESSAGE,"Installing uClibc runtime to target dir")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
 		PREFIX=$(TARGET_DIR) \
@@ -481,6 +489,7 @@ $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
 	touch -c $@
 
 $(TARGET_DIR)/usr/bin/ldd: $(cross_compiler)
+	$(Q)$(call MESSAGE,"Installing uClibc utils to target dir")
 	$(MAKE1) -C $(UCLIBC_DIR) CC=$(TARGET_CROSS)gcc \
 		CPP=$(TARGET_CROSS)cpp LD=$(TARGET_CROSS)ld \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
@@ -525,11 +534,13 @@ uclibc-target-utils: $(TARGET_DIR)/usr/bin/ldd
 uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)
 
 $(UCLIBC_DIR)/test/unistd/errno:
+	$(Q)$(call MESSAGE,"Building uClibc test suite")
 	$(MAKE) -C $(UCLIBC_DIR)/test \
 	ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \
 	UCLIBC_ONLY=1 TEST_INSTALLED_UCLIBC=1 compile
 
 $(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
+	$(Q)$(call MESSAGE,"Installing uClibc test suite to target dir")
 	mkdir -p $(TARGET_DIR)/root/uClibc
 	cp -rdpf $(UCLIBC_DIR)/test $(TARGET_DIR)/root/uClibc
 	$(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
@@ -554,6 +565,7 @@ uclibc-test-dirclean:
 #############################################################
 
 $(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/usr/lib/libc.a
+	$(Q)$(call MESSAGE,"Installing uClibc development files to target dir")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
 		PREFIX=$(TARGET_DIR) \
Signature · 1 line
1.7.2.5
#19 lore raw

PATCH 6/6 toolchain/uClibc: sprinkle with some calls to MESSAGE

Quoted 109 lines · Yann E. MORIN

Thus, the failing step can be easily extracted by autobuilders, to ease with post-mortem analysis.

---
 toolchain/uClibc/uclibc.mk |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
toolchain/uClibc/uclibc.mk +12 -1
index 055267c..b45e85c 100644
@@ -66,6 +66,7 @@ $(DL_DIR)/$(UCLIBC_SOURCE):
 
 uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
 $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
+       $(Q)$(call MESSAGE,"Extracting uClibc")
        mkdir -p $(TOOLCHAIN_DIR)
        rm -rf $(UCLIBC_DIR)
        $(UCLIBC_CAT) $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
@@ -73,6 +74,7 @@ $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
 
 uclibc-patched: $(UCLIBC_DIR)/.patched
 $(UCLIBC_DIR)/.patched: $(UCLIBC_DIR)/.unpacked
+       $(Q)$(call MESSAGE,"Patching uClibc")
 ifneq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
        support/scripts/apply-patches.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) \
                uClibc-$(UCLIBC_VERSION)-\*.patch \
@@ -86,6 +88,7 @@ endif
 
 # Some targets may wish to provide their own UCLIBC_CONFIG_FILE...
 $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.patched $(UCLIBC_CONFIG_FILE)
+       $(Q)$(call MESSAGE,"Pre-configuring uClibc")
        cp -f $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.oldconfig
        $(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
                -e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
@@ -370,6 +373,7 @@ endif
 endif
 
 $(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
+       $(Q)$(call MESSAGE,"Configuring uClibc")
        cp -f $(UCLIBC_DIR)/.oldconfig $(UCLIBC_DIR)/.config
        mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/usr/include
        mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib
@@ -393,6 +397,7 @@ $(UCLIBC_DIR)/.config: | host-ccache
 endif
 
 $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.config
+       $(Q)$(call MESSAGE,"Installing uClibc headers")
        $(MAKE1) -C $(UCLIBC_DIR) \
                ARCH="$(UCLIBC_TARGET_ARCH)" \
                PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
@@ -415,6 +420,7 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
        touch $@
 
 $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate) $(LIBFLOAT_TARGET)
+       $(Q)$(call MESSAGE,"Building uClibc")
        $(MAKE1) -C $(UCLIBC_DIR) \
                ARCH="$(UCLIBC_TARGET_ARCH)" \
                PREFIX= \
@@ -440,6 +446,7 @@ uclibc-menuconfig: dirs $(UCLIBC_DIR)/.config
 
 
 $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
+       $(Q)$(call MESSAGE,"Installing uClibc to staging dir")
        $(MAKE1) -C $(UCLIBC_DIR) \
                ARCH="$(UCLIBC_TARGET_ARCH)" \
                PREFIX=$(STAGING_DIR) \
@@ -470,6 +477,7 @@ $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
 
 ifneq ($(TARGET_DIR),)
 $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
+       $(Q)$(call MESSAGE,"Installing uClibc runtime to target dir")
        $(MAKE1) -C $(UCLIBC_DIR) \
                ARCH="$(UCLIBC_TARGET_ARCH)" \
                PREFIX=$(TARGET_DIR) \
@@ -481,6 +489,7 @@ $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
        touch -c $@
 
 $(TARGET_DIR)/usr/bin/ldd: $(cross_compiler)
+       $(Q)$(call MESSAGE,"Installing uClibc utils to target dir")
        $(MAKE1) -C $(UCLIBC_DIR) CC=$(TARGET_CROSS)gcc \
                CPP=$(TARGET_CROSS)cpp LD=$(TARGET_CROSS)ld \
                ARCH="$(UCLIBC_TARGET_ARCH)" \
@@ -525,11 +534,13 @@ uclibc-target-utils: $(TARGET_DIR)/usr/bin/ldd
 uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)
 
 $(UCLIBC_DIR)/test/unistd/errno:
+       $(Q)$(call MESSAGE,"Building uClibc test suite")
        $(MAKE) -C $(UCLIBC_DIR)/test \
        ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \
        UCLIBC_ONLY=1 TEST_INSTALLED_UCLIBC=1 compile
 
 $(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
+       $(Q)$(call MESSAGE,"Installing uClibc test suite to target dir")
        mkdir -p $(TARGET_DIR)/root/uClibc
        cp -rdpf $(UCLIBC_DIR)/test $(TARGET_DIR)/root/uClibc
        $(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
@@ -554,6 +565,7 @@ uclibc-test-dirclean:
 #############################################################
 
 $(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/usr/lib/libc.a
+       $(Q)$(call MESSAGE,"Installing uClibc development files to target dir")
        $(MAKE1) -C $(UCLIBC_DIR) \
                ARCH="$(UCLIBC_TARGET_ARCH)" \
                PREFIX=$(TARGET_DIR) \
--

1.7.2.5

Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Looks good to me

Signature · 2 lines
Regards,
Markos
#20 lore raw
In reply to Yann E. MORIN
Quoted 5 lines · Yann E. MORIN

Although I've tested it with external and internal toolchain backends (not crosstool-NG for now), and although it does work, I expect some polishing to be required. For example, the date is not displayed for the file system images steps (I suspect it's due to second expansion being needed for images, which is not for packages).

I consider that a bug in fs/common.mk. Patch follows to make things
more consistent with pkg-generic.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#21 lore raw

PATCH 1/1 fs/common.mk: delay evaluation of variables.

In reply to Yann E. MORIN

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

This makes things easier to understand and more consistent with the pkg-infra. For example, it removes the need for '$$@' in the CMD variables of fs/*/*.mk.

It also makes it possible to update the variables later, e.g. in the package override file.

It also makes sure that the date will be recorded correctly in Yann E. Morin's patch that logs the MESSAGE macros to a file.

The fs/*/*.mk must be updated as well because the '$@' shouldn't be quoted anymore in the CMD variables or the hooks.

The $(eval ...) for the dependencies is redundant, because the $(ROOTFS_TARGET) variable is already eval'd. Note that it is only redundant if the evaluation of the uses of the variable is also delayed.

---
 fs/cloop/cloop.mk       |    2 +-
 fs/common.mk            |   44 ++++++++++++++++++++++----------------------
 fs/cpio/cpio.mk         |    2 +-
 fs/cramfs/cramfs.mk     |    2 +-
 fs/ext2/ext2.mk         |    2 +-
 fs/jffs2/jffs2.mk       |    8 ++++----
 fs/romfs/romfs.mk       |    2 +-
 fs/squashfs/squashfs.mk |    4 ++--
 fs/tar/tar.mk           |    2 +-
 fs/ubifs/ubi.mk         |    4 ++--
 fs/ubifs/ubifs.mk       |    2 +-
 11 files changed, 37 insertions(+), 37 deletions(-)
fs/cloop/cloop.mk +1 -1
index c1d6abb..c918684 100644
@@ -7,7 +7,7 @@
 ROOTFS_CLOOP_DEPENDENCIES = host-cloop host-cdrkit
 
 define ROOTFS_CLOOP_CMD
-	$(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $$@
+	$(HOST_DIR)/usr/bin/genisoimage -r $(TARGET_DIR) | $(HOST_DIR)/usr/bin/create_compressed_fs - 65536 > $@
 endef
 
 $(eval $(call ROOTFS_TARGET,cloop))
\ No newline at end of file
fs/common.mk +22 -22

63 lines not on this page · raw message

fs/cpio/cpio.mk +1 -1
index 5533322..5bcec13 100644
@@ -28,7 +28,7 @@ endif # BR2_ROOTFS_DEVICE_CREATION_STATIC
 ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT
 
 define ROOTFS_CPIO_CMD
-	cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $$@
+	cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $@
 endef
 
 $(eval $(call ROOTFS_TARGET,cpio))
fs/cramfs/cramfs.mk +1 -1
index 55f6bdb..6549f39 100644
@@ -10,7 +10,7 @@ CRAMFS_OPTS=-l
 endif
 
 define ROOTFS_CRAMFS_CMD
- $(HOST_DIR)/usr/bin/mkcramfs $(CRAMFS_OPTS) $(TARGET_DIR) $$@
+ $(HOST_DIR)/usr/bin/mkcramfs $(CRAMFS_OPTS) $(TARGET_DIR) $@
 endef
 
 ROOTFS_CRAMFS_DEPENDENCIES = host-cramfs
fs/ext2/ext2.mk +1 -1
index cc8da0e..7b71592 100644
@@ -21,7 +21,7 @@ endif
 ROOTFS_EXT2_DEPENDENCIES = host-genext2fs
 
 define ROOTFS_EXT2_CMD
-	PATH=$(TARGET_PATH) fs/ext2/genext2fs.sh -d $(TARGET_DIR) $(EXT2_OPTS) $$@
+	PATH=$(TARGET_PATH) fs/ext2/genext2fs.sh -d $(TARGET_DIR) $(EXT2_OPTS) $@
 endef
 
 $(eval $(call ROOTFS_TARGET,ext2))
fs/jffs2/jffs2.mk +4 -4
index 2a69849..b5423a8 100644
@@ -36,13 +36,13 @@ ROOTFS_JFFS2_DEPENDENCIES = host-mtd
 
 ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),)
 define ROOTFS_JFFS2_CMD
-	$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o [email protected] && \
-	$(SUMTOOL) $(SUMTOOL_OPTS) -i [email protected] -o $$@ && \
-	rm [email protected]
+	$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o [email protected] && \
+	$(SUMTOOL) $(SUMTOOL_OPTS) -i [email protected] -o $@ && \
+	rm [email protected]
 endef
 else
 define ROOTFS_JFFS2_CMD
-	$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $$@
+	$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $@
 endef
 endif
 
fs/romfs/romfs.mk +1 -1
index 9719478..1a9f499 100644
@@ -9,7 +9,7 @@ ROMFS_TARGET=$(IMAGE).romfs
 ROOTFS_ROMFS_DEPENDENCIES = host-genromfs
 
 define ROOTFS_ROMFS_CMD
-	$(HOST_DIR)/usr/bin/genromfs -d $(TARGET_DIR) -f $$@
+	$(HOST_DIR)/usr/bin/genromfs -d $(TARGET_DIR) -f $@
 endef
 
 $(eval $(call ROOTFS_TARGET,romfs))
\ No newline at end of file
fs/squashfs/squashfs.mk +2 -2
index a680dae..d4b56f4 100644
@@ -33,9 +33,9 @@ endif
 endif
 
 define ROOTFS_SQUASHFS_CMD
-	$(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $$@ -noappend \
+	$(HOST_DIR)/usr/bin/mksquashfs $(TARGET_DIR) $@ -noappend \
 		$(ROOTFS_SQUASHFS_ARGS) && \
-	chmod 0644 $$@
+	chmod 0644 $@
 endef
 
 $(eval $(call ROOTFS_TARGET,squashfs))
fs/tar/tar.mk +1 -1
index 4d435cb..1d327fa 100644
@@ -7,7 +7,7 @@
 TAR_OPTS:=$(BR2_TARGET_ROOTFS_TAR_OPTIONS)
 
 define ROOTFS_TAR_CMD
- tar -c$(TAR_OPTS)f $$@ -C $(TARGET_DIR) .
+ tar -c$(TAR_OPTS)f $@ -C $(TARGET_DIR) .
 endef
 
 $(eval $(call ROOTFS_TARGET,tar))
fs/ubifs/ubi.mk +2 -2
index c88e336..51ab42d 100644
@@ -14,9 +14,9 @@ ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs
 
 define ROOTFS_UBI_CMD
 	cp fs/ubifs/ubinize.cfg . ;\
-	echo "image=$$@fs" \
+	echo "image=$@fs" \
 		>> ./ubinize.cfg ;\
-	$(HOST_DIR)/usr/sbin/ubinize -o $$@ $(UBI_UBINIZE_OPTS) ubinize.cfg ;\
+	$(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) ubinize.cfg ;\
 	rm ubinize.cfg
 endef
 
fs/ubifs/ubifs.mk +1 -1
index 337180e..8506dbd 100644
@@ -19,7 +19,7 @@ endif
 ROOTFS_UBIFS_DEPENDENCIES = host-mtd
 
 define ROOTFS_UBIFS_CMD
-	$(HOST_DIR)/usr/sbin/mkfs.ubifs -d $(TARGET_DIR) $(UBIFS_OPTS) -o $$@
+	$(HOST_DIR)/usr/sbin/mkfs.ubifs -d $(TARGET_DIR) $(UBIFS_OPTS) -o $@
 endef
 
 $(eval $(call ROOTFS_TARGET,ubifs))
\ No newline at end of file
Signature · 1 line
1.7.10.4
#22 lore raw

PATCH 1/1 fs/common.mk: delay evaluation of variables.

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle (Essensium/Mind) <[email protected]> writes:

Arnout> From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Arnout> This makes things easier to understand and more consistent with Arnout> the pkg-infra. For example, it removes the need for '$$@' in Arnout> the CMD variables of fs/*/*.mk.

Arnout> It also makes it possible to update the variables later, Arnout> e.g. in the package override file.

Arnout> It also makes sure that the date will be recorded correctly in Arnout> Yann E. Morin's patch that logs the MESSAGE macros to a file.

Arnout> The fs/*/*.mk must be updated as well because the '$@' Arnout> shouldn't be quoted anymore in the CMD variables or the hooks.

Arnout> The $(eval ...) for the dependencies is redundant, because the Arnout> $(ROOTFS_TARGET) variable is already eval'd. Note that it is Arnout> only redundant if the evaluation of the uses of the variable is Arnout> also delayed.

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#23 lore raw
In reply to Yann E. MORIN

Dear Yann E. MORIN,

Quoted 9 lines · Yann E. MORIN

So, take this series as a kind of RFC, rather than a final series.

The following changes since commit 10e058b0ee7fd8135fef35bcf24ae985707078c2:

proxychains-ng: copy proxychains.conf to target dir (2013-01-16 13:24:54 +0100)

are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-instrument-build

Quoted 7 lines

Yann E. MORIN (6):
pkg-infra: log current message
toolchain/external: sprinkle with some calls to MESSAGE toolchain/crosstool-ng: sprinkle with some calls to MESSAGE toolchain/gcc: sprinkle with some calls to MESSAGE toolchain/kernel-headers: sprinkle with some calls to MESSAGE toolchain/uClibc: sprinkle with some calls to MESSAGE

I think the "pkg-infra: log current message" needs a bit more discussion (I'm generally OK with it, just needs more time to think about it). However, the 5 followup patches that add appropriate MESSAGE calls in various locations of the code look good to me, and they can be committed now in order to reduce the burden of maintaining those patches from Yann's side.

Thanks,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#24 lore raw

Thomas, All,

Quoted 9 lines · On Sunday 20 January 2013 Thomas Petazzoni wrote:
Quoted 7 lines · Yann E. MORIN

Yann E. MORIN (6):
pkg-infra: log current message
toolchain/external: sprinkle with some calls to MESSAGE toolchain/crosstool-ng: sprinkle with some calls to MESSAGE toolchain/gcc: sprinkle with some calls to MESSAGE toolchain/kernel-headers: sprinkle with some calls to MESSAGE toolchain/uClibc: sprinkle with some calls to MESSAGE

Quoted 3 lines

I think the "pkg-infra: log current message" needs a bit more discussion (I'm generally OK with it, just needs more time to think about it).

Yes, this one I expected some talk about.

Hooking into MESSAGE to instrument the build does not seem like the panacea. It was just a quick-and-easy way to try and have the auto- builders get a bit more info about a failure, so that more advanced actions could be made (eg. bug-mail the last author of a package).

Quoted 4 lines

However, the 5 followup patches that add appropriate MESSAGE calls in various locations of the code look good to me, and they can be committed now in order to reduce the burden of maintaining those patches from Yann's side.

I will apply Arnout's eye-candy changes, and will re-submit those patches.

I'll also revert the orderiung of the patches: the new calls to MESSAGE do not depend on patch 1/5.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'