Skip to contentSkip to conversation

Pull request for branch yem-misc-updates

GIT PULL New Yann E. MORIN 3 participants 15 messages Jul 18, 2013 – Jul 19, 2013

lore
Share & tools
lore
#0 lore raw

From: "Yann E. MORIN" <[email protected]>

Hello All!

Here are a small series with a few mostly-unrelated changes:
- bump RPi kernel for misc fixes
- fix nss-mdns instalation and runtime
- instrument the external toolchain wrapper

Regards,
Yann E. MORIN.

The following changes since commit c34cd9e2dab7c37bb0bdea6f43e57addf2b710e2:

ti-gfx: use BR2_ARM_EABIHF (2013-07-18 13:09:57 +0200)

are available in the git repository at:

git://gitorious.org/buildroot/buildroot.git yem-misc-updates

for you to fetch changes up to 574ef0eb7e941dcc6c9dba3540f4aa1c213472bc:

toolchain: instrument external toolchain wrapper (2013-07-18 23:20:34 +0200)

----------------------------------------------------------------
Yann E. MORIN (4):
defconfig/rpi: bump kernel for misc fixes package/nss-mdns: fix avahi socket location package/nss-mdns: do not overwrite user's nsswitch.conf
toolchain: instrument external toolchain wrapper

 configs/rpi_defconfig                                |  2 +-
 package/nss-mdns/nss-mdns.mk                         |  5 ++++-
 package/nss-mdns/nsswitch.conf                       | 15 ---------------
 toolchain/toolchain-external/ext-toolchain-wrapper.c |  8 ++++++++
 4 files changed, 13 insertions(+), 17 deletions(-)
 delete mode 100644 package/nss-mdns/nsswitch.conf
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/4 defconfig/rpi: bump kernel for misc fixes

From: "Yann E. MORIN" <[email protected]>

Bump for a few fixes:
- fix for slow SDcards
- fix for USB interrupts
- fix for tracing functions

---
 configs/rpi_defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
configs/rpi_defconfig +1 -1
index 3df440f..9d608f1 100644
@@ -17,7 +17,7 @@ BR2_DEFAULT_KERNEL_VERSION="3.6.11"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL="git://github.com/raspberrypi/linux.git"
-BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION="53f7e0b"
+BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION="0006326"
 BR2_LINUX_KERNEL_USE_DEFCONFIG=y
 BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi"
 BR2_LINUX_KERNEL_ZIMAGE=y
Signature · 1 line
1.8.1.2
#2 lore raw

PATCH 1/4 defconfig/rpi: bump kernel for misc fixes

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

"Yann" == Yann E MORIN <[email protected]> writes:

Yann> From: "Yann E. MORIN" <[email protected]> Yann> Bump for a few fixes:

 Yann>   - fix for slow SDcards
 Yann>   - fix for USB interrupts
 Yann>   - fix for tracing functions

Yann> Signed-off-by: "Yann E. MORIN" <[email protected]>

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 2/4 package/nss-mdns: fix avahi socket location

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

In buildroot, the avahi socket is located in /var/run/avahi-daemon, not in /usr/var/run/avahi-daemon/socket.

---
 package/nss-mdns/nss-mdns.mk | 2 ++
 1 file changed, 2 insertions(+)
package/nss-mdns/nss-mdns.mk +2 -0
index ea53bc2..4d36633 100644
@@ -7,6 +7,8 @@
 NSS_MDNS_VERSION=0.10
 NSS_MDNS_SITE=http://0pointer.de/lennart/projects/nss-mdns
 
+NSS_MDNS_CONF_OPT += --localstatedir=/var
+
 define NSS_MDNS_INSTALL_CONFIG
 	$(INSTALL) -D -m 0664 package/nss-mdns/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf
 endef
Signature · 1 line
1.8.1.2
#4 lore raw

PATCH 2/4 package/nss-mdns: fix avahi socket location

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

"Yann" == Yann E MORIN <[email protected]> writes:

Yann> From: "Yann E. MORIN" <[email protected]>
Yann> In buildroot, the avahi socket is located in /var/run/avahi-daemon, Yann> not in /usr/var/run/avahi-daemon/socket.

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#5 lore raw

PATCH 3/4 package/nss-mdns: do not overwrite user's nsswitch.conf

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Instead of over-writing the nsswitch.conf file (which may already contain user's specific configuration if it comes from a rootfs overlay, or a custom skeleton), just replace the 'hosts' line.

Remove now-useless custom nsswitch.conf file.

---
 package/nss-mdns/nss-mdns.mk   |  3 ++-
 package/nss-mdns/nsswitch.conf | 15 ---------------
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 package/nss-mdns/nsswitch.conf
package/nss-mdns/nss-mdns.mk +2 -1
index 4d36633..83d9a2a 100644
@@ -10,7 +10,8 @@ NSS_MDNS_SITE=http://0pointer.de/lennart/projects/nss-mdns
 NSS_MDNS_CONF_OPT += --localstatedir=/var
 
 define NSS_MDNS_INSTALL_CONFIG
-	$(INSTALL) -D -m 0664 package/nss-mdns/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf
+	sed -r -i -e 's/^(hosts:[[:space:]]+).*/\1files mdns4_minimal [NOTFOUND=return] dns mdns4/' \
+	    $(TARGET_DIR)/etc/nsswitch.conf
 endef
 
 NSS_MDNS_POST_INSTALL_TARGET_HOOKS += NSS_MDNS_INSTALL_CONFIG
package/nss-mdns/nsswitch.conf deleted +0 -15
deleted file mode 100644
index 94174e0..0000000
@@ -1,15 +0,0 @@
-# /etc/nsswitch.conf
-
-passwd:         compat
-group:          compat
-shadow:         compat
-
-hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
-networks:       files
-
-protocols:      db files
-services:       db files
-ethers:         db files
-rpc:            db files
-
-netgroup:       nis
Signature · 1 line
1.8.1.2
#6 lore raw

PATCH 3/4 package/nss-mdns: do not overwrite user's nsswitch.conf

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

"Yann" == Yann E MORIN <[email protected]> writes:

Yann> From: "Yann E. MORIN" <[email protected]>
Yann> Instead of over-writing the nsswitch.conf file (which may already Yann> contain user's specific configuration if it comes from a rootfs Yann> overlay, or a custom skeleton), just replace the 'hosts' line.

It's only an issue for custom skeletons, not overlays as they are only added after all the packages are built.

Committed with the description adjusted, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#7 lore raw

PATCH 4/4 toolchain: instrument external toolchain wrapper

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

If BR_DEBUG_WRAPPER is set in the envirnment, dump the actual command being exec()uted, to ease debugging issues with the wrapper.

---
 toolchain/toolchain-external/ext-toolchain-wrapper.c | 8 ++++++++
 1 file changed, 8 insertions(+)
toolchain/toolchain-external/ext-toolchain-wrapper.c +8 -0
index 460f255..8e56414 100644
@@ -136,6 +136,14 @@ int main(int argc, char **argv)
 	/* finish with NULL termination */
 	*cur = NULL;
 
+	if( getenv("BR_DEBUG_WRAPPER") ) {
+		fprintf( stderr, "path='%s'\n", path );
+		int i;
+		for( i=0; args[i]; i++ ) {
+			fprintf(stderr, "argv[%d]='%s'\n", i, args[i] );
+		}
+	}
+
 	if (execv(path, args))
 		perror(path);
 
Signature · 1 line
1.8.1.2
#8 lore raw

PATCH 4/4 toolchain: instrument external toolchain wrapper

Dear Yann E. MORIN,

I like the feature, but it would be nice if the coding was more consistent with the rest of the code, see below:

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 139

Quoted 1 line · Yann E. MORIN
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+	if( getenv("BR_DEBUG_WRAPPER") ) {

No space after ( and before ).

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 140

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+		fprintf( stderr, "path='%s'\n", path );

Dirro.

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 141

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+		int i;

Variable declaration in the middle of the code. I know it's C99 ok, but I'd prefer not to have that (just like the kernel).

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 142

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+		for( i=0; args[i]; i++ ) {
		for (i = 0; args[i]; i++)

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 143

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+			fprintf(stderr, "argv[%d]='%s'\n", i, args[i] );

Ditto space before ).

Thomas

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

PATCH 4/4 toolchain: instrument external toolchain wrapper

Thomas, All,

On 2013-07-18 23:32 +0200, Thomas Petazzoni spake thusly:

Quoted 2 lines

I like the feature, but it would be nice if the coding was more consistent with the rest of the code, see below:

Sure! :-)

It initially was a quick'n'dirty hack, and I eventually thought it might be useful upstream too. I'll re-read my code better next time... :-/

Quoted 3 lines · Yann E. MORIN

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 139

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+	if( getenv("BR_DEBUG_WRAPPER") ) {

No space after ( and before ).

Ack.

Quoted 2 lines

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 140

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+		fprintf( stderr, "path='%s'\n", path );

Dirro.

Ditto?
Ditto! ;-)

Quoted 3 lines

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 141

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+		int i;

Variable declaration in the middle of the code. I know it's C99 ok, but I'd prefer not to have that (just like the kernel).

Doh. Right.

gcc also whines about this (which was my original code):

	for( int i=0; args[i]; i++ ) {
Quoted 2 lines

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 142

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+		for( i=0; args[i]; i++ ) {
		for (i = 0; args[i]; i++)

Ack.

Quoted 2 lines

toolchain/toolchain-external/ext-toolchain-wrapper.c int main(int argc, char **argv) · line 143

Quoted 1 line
toolchain/toolchain-external/ext-toolchain-wrapper.c +1 -0
+			fprintf(stderr, "argv[%d]='%s'\n", i, args[i] );

Ditto space before ).

Atta! I'll fix and respin. Thanks! :-)

Regsards,
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.  |
'------------------------------^-------^------------------^--------------------'
#10 lore raw

PATCH v2 4/4 toolchain: instrument external toolchain wrapper

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

If BR_DEBUG_WRAPPER is set in the envirnment, dump the actual command being exec()uted, to ease debugging issues with the wrapper.

Cc Thomas Petazzoni <[email protected]>

---
Changes v1 -> v2:
- style fixes (Thomas)

---
 toolchain/toolchain-external/ext-toolchain-wrapper.c | 8 ++++++++
 1 file changed, 8 insertions(+)
toolchain/toolchain-external/ext-toolchain-wrapper.c +8 -0
index 460f255..8e56414 100644
@@ -136,6 +136,14 @@ int main(int argc, char **argv)
 	/* finish with NULL termination */
 	*cur = NULL;
 
+	if( getenv("BR_DEBUG_WRAPPER") ) {
+		fprintf( stderr, "path='%s'\n", path );
+		int i;
+		for( i=0; args[i]; i++ ) {
+			fprintf(stderr, "argv[%d]='%s'\n", i, args[i] );
+		}
+	}
+
 	if (execv(path, args))
 		perror(path);
 
Signature · 1 line
1.8.1.2
#11 lore raw

PATCH v2 4/4 toolchain: instrument external toolchain wrapper

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

"Yann" == Yann E MORIN <[email protected]> writes:

Yann> From: "Yann E. MORIN" <[email protected]>
Yann> If BR_DEBUG_WRAPPER is set in the envirnment, dump the actual command Yann> being exec()uted, to ease debugging issues with the wrapper.

Yann> Signed-off-by: "Yann E. MORIN" <[email protected]> Yann> Cc: Thomas Petazzoni <[email protected]>

Yann> ---
Yann> Changes v1 -> v2:
Yann> - style fixes (Thomas)
Yann> ---

 Yann>  toolchain/toolchain-external/ext-toolchain-wrapper.c | 8 ++++++++

Yann> 1 file changed, 8 insertions(+)

Yann> diff --git a/toolchain/toolchain-external/ext-toolchain-wrapper.c b/toolchain/toolchain-external/ext-toolchain-wrapper.c Yann> index 460f255..8e56414 100644
Yann> --- a/toolchain/toolchain-external/ext-toolchain-wrapper.c
Yann> +++ b/toolchain/toolchain-external/ext-toolchain-wrapper.c
Yann> @@ -136,6 +136,14 @@ int main(int argc, char **argv)
Yann> /* finish with NULL termination */
Yann> *cur = NULL;

Yann> + if( getenv("BR_DEBUG_WRAPPER") ) {
Yann> + fprintf( stderr, "path='%s'\n", path );
Yann> + int i;
Yann> + for( i=0; args[i]; i++ ) {
Yann> + fprintf(stderr, "argv[%d]='%s'\n", i, args[i] );
Yann> + }
Yann> + }
Yann> +

That's still not really the code style used elsewhere in this file.

You could argue that this feature isn't really needed as you can just run 'strace -s 1000 -e execve <wrapper>' for basically the same information, but OK - This is perhaps a bit more user friendly.

With that in mind, I think a more sensible output format is something you can directly cut'n'paste and execute in the shell (after perhaps tweaking something), so I've changed it to simply print the args space seperated like this:

BR_DEBUG_WRAPPER=1 ./output/host/usr/bin/arm-none-linux-gnueabi-gcc --version
Executing /home/peko/source/buildroot/output/host/opt/ext-toolchain/bin/arm-none-linux-gnueabi-gcc --sysroot /home/peko/source/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot -march=armv5te -mtune=arm926ej-s -mabi=aapcs-linux -mfloat-abi=soft -msoft-float -marm -pipe --version arm-none-linux-gnueabi-gcc (Sourcery CodeBench Lite 2013.05-24) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Committed with these changes, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#12 lore raw

PATCH v2 4/4 toolchain: instrument external toolchain wrapper

Peter, All,

On 2013-07-19 08:33 +0200, Peter Korsgaard spake thusly:

Quoted 33 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

Yann> From: "Yann E. MORIN" <[email protected]>
Yann> If BR_DEBUG_WRAPPER is set in the envirnment, dump the actual command Yann> being exec()uted, to ease debugging issues with the wrapper.

Yann> Signed-off-by: "Yann E. MORIN" <[email protected]> Yann> Cc: Thomas Petazzoni <[email protected]>

Yann> ---
Yann> Changes v1 -> v2:
Yann> - style fixes (Thomas)
Yann> ---

 Yann>  toolchain/toolchain-external/ext-toolchain-wrapper.c | 8 ++++++++

Yann> 1 file changed, 8 insertions(+)

Yann> diff --git a/toolchain/toolchain-external/ext-toolchain-wrapper.c b/toolchain/toolchain-external/ext-toolchain-wrapper.c Yann> index 460f255..8e56414 100644
Yann> --- a/toolchain/toolchain-external/ext-toolchain-wrapper.c
Yann> +++ b/toolchain/toolchain-external/ext-toolchain-wrapper.c
Yann> @@ -136,6 +136,14 @@ int main(int argc, char **argv)
Yann> /* finish with NULL termination */
Yann> *cur = NULL;

Yann> + if( getenv("BR_DEBUG_WRAPPER") ) {
Yann> + fprintf( stderr, "path='%s'\n", path );
Yann> + int i;
Yann> + for( i=0; args[i]; i++ ) {
Yann> + fprintf(stderr, "argv[%d]='%s'\n", i, args[i] );
Yann> + }
Yann> + }
Yann> +

Quoted 1 line

That's still not really the code style used elsewhere in this file.

Doh. What happenned? I've just looked at my tree here, adn the style fixes are applied.

OK. All sorted. I did 'git commit --amend'. I should forgot to pass '-a' also (or run 'git add' first).

Doh, too bad. Sorry for the inconvenience... :-(

Quoted 3 lines

You could argue that this feature isn't really needed as you can just run 'strace -s 1000 -e execve <wrapper>' for basically the same information, but OK - This is perhaps a bit more user friendly.

My use-case was to see how the kernel build-system was calling the wrapper. So I just ran:
BR_DEBUG_WRAPPER=1 make
in my Buildroot build dir.

Quoted 4 lines

With that in mind, I think a more sensible output format is something you can directly cut'n'paste and execute in the shell (after perhaps tweaking something), so I've changed it to simply print the args space seperated like this:

Yet, one of the motivation behind the \n-separated args was to easily see the args, without having to 'parse' the command line with the eyes.

The Linux kernel is passing something like 40+ args to the wrapper, so the line is getting rather long, and difficult to grok visually, while the one-arg per line output made it very easy.

But OK, that's sane, too.

Quoted 1 line

Committed with these changes, thanks.

Again, sorry for the inconvenience. :-(

I already owed you one ${BEVERAGE} in Edimburgh; you can make that two, now! ;-)

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.  |
'------------------------------^-------^------------------^--------------------'
#13 lore raw

PATCH v2 4/4 toolchain: instrument external toolchain wrapper

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

"Yann" == Yann E MORIN <[email protected]> writes:

Hi,

Quoted 1 line
Quoted 1 line

That's still not really the code style used elsewhere in this file.

Yann> Doh. What happenned? I've just looked at my tree here, adn the style Yann> fixes are applied.

Yann> OK. All sorted. I did 'git commit --amend'. I should forgot to pass '-a' Yann> also (or run 'git add' first).

Yann> Doh, too bad. Sorry for the inconvenience... :-(

No problem ;)

Quoted 3 lines
Quoted 3 lines

You could argue that this feature isn't really needed as you can just run 'strace -s 1000 -e execve <wrapper>' for basically the same information, but OK - This is perhaps a bit more user friendly.

Yann> My use-case was to see how the kernel build-system was calling the Yann> wrapper. So I just ran:
Yann> BR_DEBUG_WRAPPER=1 make
Yann> in my Buildroot build dir.

So you are only interested in the arguments to the wrapper, or do you want to see the final arguments to the real compiler?

Quoted 4 lines
Quoted 4 lines

With that in mind, I think a more sensible output format is something you can directly cut'n'paste and execute in the shell (after perhaps tweaking something), so I've changed it to simply print the args space seperated like this:

Yann> Yet, one of the motivation behind the \n-separated args was to easily Yann> see the args, without having to 'parse' the command line with the eyes.

Yann> The Linux kernel is passing something like 40+ args to the wrapper, so Yann> the line is getting rather long, and difficult to grok visually, while Yann> the one-arg per line output made it very easy.

Ok, but a kernel build with 40+ lines per gcc invocation is presumably also quite overwhelming?

Yann> Again, sorry for the inconvenience. :-(

Yann> I already owed you one ${BEVERAGE} in Edimburgh; you can make Yann> that two, now! ;-)

heh, sounds good ;)

Signature · 1 line
Bye, Peter Korsgaard
#14 lore raw

PATCH v2 4/4 toolchain: instrument external toolchain wrapper

On 2013-07-19 23:30 +0200, Peter Korsgaard spake thusly:

Quoted 5 lines
Quoted 4 lines
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> writes:

You could argue that this feature isn't really needed as you can just run 'strace -s 1000 -e execve <wrapper>' for basically the same information, but OK - This is perhaps a bit more user friendly.

Quoted 7 lines

Yann> My use-case was to see how the kernel build-system was calling the Yann> wrapper. So I just ran:
Yann> BR_DEBUG_WRAPPER=1 make
Yann> in my Buildroot build dir.

So you are only interested in the arguments to the wrapper, or do you want to see the final arguments to the real compiler?

No, I'm interested in the final, complete argv[*].

Quoted 8 lines
Quoted 4 lines
Quoted 4 lines

With that in mind, I think a more sensible output format is something you can directly cut'n'paste and execute in the shell (after perhaps tweaking something), so I've changed it to simply print the args space seperated like this:

Yann> Yet, one of the motivation behind the \n-separated args was to easily Yann> see the args, without having to 'parse' the command line with the eyes.

Quoted 6 lines

Yann> The Linux kernel is passing something like 40+ args to the wrapper, so Yann> the line is getting rather long, and difficult to grok visually, while Yann> the one-arg per line output made it very easy.

Ok, but a kernel build with 40+ lines per gcc invocation is presumably also quite overwhelming?

The trick is to wait it break, and re-run with BR_DEBUG_WRAPPER=1 set and then inspect the reason for the breakage.

Quoted 4 lines

Yann> I already owed you one ${BEVERAGE} in Edimburgh; you can make Yann> that two, now! ;-)

heh, sounds good ;)

Remember: for each ${BEVERAGE} I owe you, I get one too! :-) /me is looking forward to it!

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.  |
'------------------------------^-------^------------------^--------------------'