[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#210359: kernel CONFIG_TR interferes with busybox CONFIG_TR



On Thu Sep 11, 2003 at 12:48:55AM +0100, Richard Hirst wrote:
> package: busybox-cvs
> version: 0.60.99.cvs20030819
> 
> On ia64 the kernel has CONFIG_TR undefined (token ring).  The busybox
> build pulls in /usr/include/linux/autoconf.h, which includes the line
> 
> #undef CONFIG_TR
> 
> That results in the 'tr' applet being disabled in the config-udeb build.
> 
> The include sequence to pull in autoconf.h is
> 
> /usr/include/linux/autoconf.h
> /usr/include/linux/config.h:4,
> /usr/include/asm/param.h:11,
> /usr/include/linux/param.h:4,
> /usr/include/sys/param.h:24,
> include/busybox.h:111,
> applets/applets.c:32:
> 
> This stops debian-installer (actually debootstrap) working on ia64.

This is not a busybox problem.  This is an bug in the libc6
header files for ia64.  User space must be free to include
sys/param.h, and must be free to define anything it wants so long
as the define does not conflict with the predefined macro names
identified in section 6.10.8 of the ISO C99 standard, and is not
one of the reserved identifiers, as specified in section 7.1.3.
As it stipulates in C99 6.10.8.4, "Any other predefined macro
names shall begin with a leading underscore followed by an
uppercase letter or a second underscore."

CONFIG_TR is neither a C99 reserved identifier, and it is not a
legal C99 predefined macro name, and it does not begin with a
eading underscore followed by an uppercase letter or a second
underscore.  Therefore sys/param.h on ia64 is broken, and busybox
is well within its C99 granted rights to use CONFIG_TR.

 -Erik

--
Erik B. Andersen             http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--



Reply to: