Skip to contentSkip to conversation

Fix headers_install for x86-64 (now with less whitespace damage!)

PATCH In review Rob Landley 2 participants 3 messages Jun 26, 2007 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix headers_install for x86-64 (now with less whitespace damage!)

A bug in headers_install for ARCH=x86_64 yields an asm/ directory full of files all of which are using the same #ifdef guard, "__ASM_STUB_" with no postfix. So the second and later asm files #included in the same C file (often through standard headers like ioctl.h) yields no symbols.

--
There's a missing semicolon after the assignment to FNAME (so the assignment of STUBDEF on the next line doesn't see the value), and it helps to export variables before calling a subshell.

Second try, telling Kmail not to wordwrap inappropriately. (I am up waaaay too early to get ready for OLS...)

scripts/Makefile.headersinst +2 -2
@@ -108,8 +108,8 @@
 
 quiet_cmd_gen		  = GEN     $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
       cmd_gen		  = \
-FNAME=$(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$@)			\
-STUBDEF=__ASM_STUB_`echo $$FNAME | tr a-z.- A-Z__`;			\
+export FNAME=$(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$@);		\
+export STUBDEF=__ASM_STUB_`echo $$FNAME | tr a-z.- A-Z__`;		\
 (echo "/* File autogenerated by 'make headers_install' */" ;		\
 echo "\#ifndef $$STUBDEF" ;						\
 echo "\#define $$STUBDEF" ;						\
Signature · 2 lines
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.
#1 lore raw
Quoted 6 lines · Rob Landley

A bug in headers_install for ARCH=x86_64 yields an asm/ directory full of files all of which are using the same #ifdef guard, "__ASM_STUB_" with no postfix. So the second and later asm files #included in the same C file (often through standard headers like ioctl.h) yields no symbols.

Interesting. It works here with bash 3.2 -- I thought it was the _first_ shell which expanded $FNAME and $STUBDEF inside the parentheses. Which shell are you using?

Is it sufficient just to add the missing semicolon after FNAME=...?

Signature · 1 line
dwmw2
#2 lore raw
Quoted 11 lines · On Tuesday 26 June 2007 10:03:49 David Woodhouse wrote:
Quoted 6 lines · Rob Landley

A bug in headers_install for ARCH=x86_64 yields an asm/ directory full
of files all of which are using the same #ifdef guard, "__ASM_STUB_" with no postfix. So the second and later asm files #included in the same C file (often through standard headers like ioctl.h) yields no symbols.

Interesting. It works here with bash 3.2 -- I thought it was the _first_ shell which expanded $FNAME and $STUBDEF inside the parentheses. Which shell are you using?

Stock Ubuntu 7.04 comes with /bin/sh pointing to the Dumb-Ass SHell. (Motto:
If it's not explicitly mentioned in posix, and we accidentally support it, let us know so we can remove it!)

Quoted 1 line

Is it sufficient just to add the missing semicolon after FNAME=...?

Huh. Apparently, yes it is. (I thought I'd tried that and it hadn't worked, but I just tried it again and it worked, so ok. It's before noon, don't expect accuracy from me yet today...)

Rob

Signature · 2 lines
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.